2014-11-04 102 views
0

该场景是:什么是设计下列场景的最佳方式

一个男人可以走路。 超人可以走路和飞行 蜘蛛侠可以走路和爬行。

什么是最好的设计模式。

+0

貌似简单的继承对我来说。 – 2014-11-04 07:46:07

+0

我们还能做什么?继承会导致我们投它来调用适当的方法。 – somaniA 2014-11-04 07:48:10

+0

取决于您使用的语言。 Java中不需要强制转换。 – 2014-11-04 07:49:05

回答

1

我只想用一个接口,用于每个能力

interface ICanWalk 
{ 
    ///walk methods 
} 

interface ICanFly 
{ 
    //fly methods 
} 

interface ICanCrawl 
{ 
    //crawl methods 
} 

,然后有具体的类

Man: ICanWalk 
Superman : ICanWalk, ICanFly 
Spiderman : ICanWalk, ICanCrawl 

要没有更多的细节老实其挺难猜测

+0

你不觉得它会重复代码,因为超人和蜘蛛侠必须再次实施Walk。 – somaniA 2014-11-04 10:24:48

+0

如果实现是相同的,那么你会重复。在这种情况下,创建一个基类或委托给一个助手'ManWalker'类。但是,这与你提出的问题是不同的问题。 – 2014-11-04 10:27:18

+0

这取决于“超人是不是人”的答案 – ariso 2014-11-12 17:30:08

相关问题