我需要爲某些類提供某些行爲(例如:like,comment,rate,answer,poll等)。然而所有的類都需要具備所有這些行爲。有些類可能有全部,但有些可能只需要2個,有些只需要1個。任何人都可以提出一個設計或設計模式來適應這個問題嗎?建議設計模式
Q
建議設計模式
-1
A
回答
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
相關問題
- 1. 建議設計模式?
- 2. C#設計模式建議
- 3. 請建議設計模式
- 4. Mongodb模式設計建議
- 5. 可維護的設計模式建議
- 6. 對JavaScript設計模式的建議
- 7. 申請創力設計/模式建議
- 8. 建議使用的設計模式
- 9. 需要c#設計模式的建議
- 10. 關於MongoDb模式設計的建議
- 11. 不變類的設計模式建議
- 12. 實現Singleton設計模式[請建議]
- 13. 通用設計模式實現建議
- 14. 建議最適合的設計模式
- 15. 設計:需要建模建議
- 16. 計算價格的設計模式建議
- 17. 電子郵件模板的建議設計模式?
- 18. 設計模式/建立規則引擎的建議
- 19. OOP設計建議
- 20. C++設計建議
- 21. DB設計建議
- 22. Winforms設計建議
- 23. 鈦設計建議
- 24. ListAdapter設計建議
- 25. 表設計建議
- 26. PHP設計建議
- 27. 關於設計模型的建議
- 28. 需要CoreData模型設計建議
- 29. 針對coredata的模型設計建議
- 30. 網絡協議的設計模式?
http://ux.stackexchange.com/ –
問題的背景並不清楚。你是使用特定的編程語言還是使用CSS行爲的CSS類? – user1201210
在c#(.net)中我需要實現它。 – Ambika