我想知道在经典的继承环境中,如果需要角色或特征,应该做些什么。我有一个类的词干沿着两条路,这两条路都来自一个根类,但是,我想将两条路上的不同类链接在一起,以共享相同的功能。如下所示:
+-- Base
+-- Base_Processor
| +-- Base_Processor_Request
| +-- Base_Processor_Request_Ajax
+-- Base_Impl
+-- Base_Impl_MyImpl
+-- Base_Impl_MyImpl_Processor (extends from Base_Processor)
+-- Base_Impl_MyImpl_Processor_Request (extends from ??)
+-- Base_Impl_MyImpl_Processor_Request_Ajax (extends from ??)在仍然从Base_Impl_MyImpl_Processor扩展的同时将Base_Impl_MyImpl_Processor_Request和Base_Processor_Request链接在一起,并以相同的方式链接Base_Impl_MyImpl_Processor_Request_Ajax的最佳方式是什么?
在进阶时谢谢。
发布于 2012-04-12 05:48:42
我100%同意Alex Burtsev的观点--很多级别的继承看起来就像一个依赖噩梦(而且,正如你所发现的,当你大量使用继承时,很难跨类重用特定的代码)。
通常,我不希望特征类被插入到层级结构中--在我看来,特征是独立的概念,它定义了不同实现细节的变化,因此只属于接口,而不是从基类派生
如果这是现有的代码,并且您需要在不同的派生类中重用多个元素,我认为将这些元素拆分到与您的层级结构完全无关的单独类中会更有意义。
看起来Processor、Request和Ajax作为独立的实体更好地为您服务。
https://stackoverflow.com/questions/10111546
复制相似问题