这里的正确设计是什么(封装,多态,继承)?

时间:2015-04-28 07:08:06

标签: oop inheritance design-patterns polymorphism encapsulation

假设我有一个接口和3或4个实现接口的类。现在让我们说我有另一种方法,但它仅与一个或两个实现类相关。

所以我看到它有两种方法

  1. 在接口中声明方法,在所有类中实现。在该方法不相关的类中 - 抛出“不支持”异常。
  2. 仅在相关的实现类中声明方法,但是您必须将实例从接口类型向下转换为特定类型才能调用该方法。 那么你的设计是什么?为什么?

3 个答案:

答案 0 :(得分:2)

您应该在此处应用interface segregation principle,这是SOLID原则的一部分。不要使用一个大型接口,而是将接口拆分为几个较小的接口。仅在需要它的类中实现接口。

答案 1 :(得分:1)

我会选择父接口。使满足接口的类实现该接口。创建第二个接口,扩展第一个接口并添加额外的方法,然后使其余的类实现该接口。您仍然会编写接口而不是实现,并且所有设计原则都得到满足。

答案 2 :(得分:0)

问问自己,消耗接口的对象是否一定会期望此功能存在?重要的是无论您传递哪种界面,您仍然可以使用该方法吗?

如果该问题的答案是肯定的,1。如果否,2。