2012-10-12 152 views
-1

我需要爲某些類提供某些行爲(例如:like,comment,rate,answer,poll等)。然而所有的類都需要具備所有這些行爲。有些類可能有全部,但有些可能只需要2個,有些只需要1個。任何人都可以提出一個設計或設計模式來適應這個問題嗎?建議設計模式

+0

http://ux.stackexchange.com/ –

+0

問題的背景並不清楚。你是使用特定的編程語言還是使用CSS行爲的CSS類? – user1201210

+0

在c#(.net)中我需要實現它。 – Ambika

回答

1

讓他們使用所需的方法實現一個接口,然後將這些方法委託給該類的成員的助手對象。

E.g.

public interface MyInterface { 
    public void comment(); 
} 

public class Helper implements MyInterface{ 
    public void comment() { ... } 
} 

public class MyClass implements MyInterface { 
    private final Helper helper = new Helper(); 

    public void comment() { 
     helper.comment(); 
    } 
} 

很多IDE可以自動生成這個委託代碼給你。 如果您的語言支持多重繼承,那麼您可以只擴展幫助程序,而不需要委託代碼。

對於你不想使用的方法,你仍然必須實現它們,但是如果它們被調用並且記錄你不應該使用它們,那麼可能會拋出一個異常。如果你不喜歡這樣,那麼你將需要每種方法的接口。

+0

謝謝你的回覆。但是我需要在大量的類中實現MyInterface,並且當我這樣做時,代碼「private final Helper helper = new Helper(); public void comment(){helper.comment();}」將全部重複我不想要的課程。 – Ambika