簡體   English   中英

類設計,接口或具體類

[英]Class design, Interfaces or Concrete classes

我在使用接口和具體類時遇到問題。
我有一個實現一些常用屬性/方法的基類。 現在,我有兩個可能的擴展名。 這個基類可以具有一些稱為Parameters的屬性,或者可以具有另一個名為Children的屬性,或者可以同時具有這兩個屬性。

我的看法是,我可以創建2個接口(IParameterized,IParent),也可以實現三個子類(ParameterObject,ParentObject,ParentParameterObject)。 問題是,其中哪一項是更好的設計。 我目前傾向於接口方法,但是我不是一個經驗豐富的程序員,所以歡迎您提出任何建議

我認為您本人的“學習”是正確的,其他人也會同意: http : //www.artima.com/lejava/articles/designprinciples4.html

有關該主題的一些背景知識應該可以一臂之力Liskov替換原理 (更多信息請 參見 )以及組成而不是繼承的概念。

簡而言之,不要實現3個子類(即繼承方法):如果您將來需要2或3個其他通用屬性/方法,將會發生什么? 僅添加2個,您就可以看到15種左右的獨特組合。 對於組成,請查看狀態策略模式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM