通过避免钻石案例采访跟进班级设计

时间:2013-05-04 10:18:45

标签: java uml

最近我被问到设计问题。马和鸟有两个类。我需要设计一个名为Unicorn的新类,它具有Horse和Bird类的所有方法。

Horse          Bird
     |         |
       Unicorn

因为在Java中我们不能扩展两个类(以避免钻石问题)我们如何实现这个目标?

请指导。提前谢谢。

2 个答案:

答案 0 :(得分:0)

在Java中,类不能扩展多个类,但接口可以扩展多个接口。

在进入类级设计之前,首先创建两个接口Horse和Bird,然后创建将扩展两个接口的Unicorn接口。

答案 1 :(得分:0)

使用Façade模式Composition来实现此目的。您的独角兽类将包含Bird和Horse的实例,并通过在这些包含的实例上调用它们来实现相关方法。