我真的不親,找到我的問題挺難形容,所以請問,如果有不清楚的地方:把我的繼承類在一個抽象的「工廠」 C#
我有一個叫BaseDevice抽象類。 其他設備,如Beacon和Transponder,繼承自BaseDevice。 例如Beacon,它具有BaseClass方法和自己的屬性和方法。 比方說,這些設備之間的區別是,一個有2個LED,一個有LCD
目前它不可能做一個設備轉發器以及燈塔(或我必須複製粘貼到一個新的類,這是不想要的)。
因此,例如, 我希望能夠讓一個設備對它說:「你有一個LED」,「你有2個LCD」或其他。並且隨附的所有方法和屬性都應該可用。我還需要能夠看到我的設備列表中有哪些設備「他是否有一個(或多個)LED」
結論:我想讓我的「是A」變成「」有A「(作爲四人幫推薦)。
我對工廠設計模式這看起來複雜讀一次。這將是在這種情況下,一個好的解決方案?
也許我用了一些撒姆這裏超過我知識,這個項目是我第一次使用抽象類等。我真的沒有太多的面向對象的程序員。設計模式很難讓我閱讀,所以回答t帽子很容易閱讀,比歡迎。
看起來不錯!謝謝 修飾者是否只能添加方法或屬性? 而且最重要的是:我可以看到設備裝飾了什麼嗎? – SirLenz0rlot 2010-06-23 09:16:11
如果你想看到新的方法和屬性,也許裝飾者不是你的正確選擇。它意味着能夠以多態方式處理組件。按照@Henk的建議,將各種組件集成到設備中,也許你會更好。例如。在設備中有一組LCD和另一組LED,然後將2個LED推入設備A,1個LCD進入設備B等。 – 2010-06-23 09:27:11
謝謝,亨克刪除了他的答案,但我明白了他的意思。我會看看是否有這樣的事情 我希望有一個更漂亮的解決方案,因爲這些設備可以有更多的不僅僅是LED和LCD。 – SirLenz0rlot 2010-06-23 09:38:17