【问题标题】:What would be the correct design here (encapsulation, polymorphism, inheritance)?这里正确的设计是什么(封装、多态、继承)?
【发布时间】:2015-04-28 07:08:05
【问题描述】:
假设我有一个接口和 3 或 4 个实现该接口的类。现在假设我有另一种方法,但它只与一个或两个实现类相关。
所以我认为有两种方法
- 在接口中声明方法,在所有类中实现。在方法不相关的类中 - 抛出“不支持”异常。
- 仅在相关的实现类中声明该方法,但您必须将实例从接口类型向下转换为特定类型才能调用该方法。
你的设计也会在这里,为什么?
【问题讨论】:
标签:
oop
inheritance
design-patterns
polymorphism
encapsulation
【解决方案2】:
我会选择一个父界面。使满足接口的类实现该接口。创建第二个接口,扩展第一个接口并添加额外的方法,然后让其余类实现该接口。您仍然会编写接口而不是实现,并且您的所有设计原则都得到满足。
【解决方案3】:
问问你自己,使用接口的对象是否一定希望这个函数存在? 无论您通过哪个接口实例,您仍然可以使用该方法,这一点很重要吗?
如果该问题的答案是肯定的,1。如果不是,2。