2014-11-04 142 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

相關問題