我真的不亲,找到我的问题挺难形容,所以请问,如果有不清楚的地方:把我的继承类在一个抽象的“工厂” 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