OOP 面向?qū)ο罅鶄€原則

1、單一職責SRP;

一個模塊的代碼應該盡可能只專注一件事情,要求在設計功能模塊代碼時,盡可能劃分清楚代碼的功能;

比如一個 “容器接口(協(xié)議)”, 只有盛和倒,而不應該考慮各種使用方法;

2、開放閉合OCP;

當程序已經(jīng)正確描述功能穩(wěn)定發(fā)布后,需要添加新的功能或者修改功能時,應該進行對程序進行拓展,而不是修改源代碼。

當杯子實現(xiàn)了 “容器接口 ”,而杯子需要有一個“把手”,應該依賴一個“把手接口”,而不是直接在類里耦合實例一個“把手對象”的。否則,當把手需要替換的時候,你需要每次都從一個帶“把手”的“杯子”中把舊“把手”扔掉,才用上新的。

3、里氏替換LSP;

就是繼承,父類出現(xiàn)的地方,可以用子類對象進行替換,而原程序不會造成變化。理論上,設計(Java)代碼時,應該首選繼承抽象而不是具體。

當保溫瓶繼承了杯子,保溫瓶完全可以滿足杯子的功能,而保溫瓶的功能,杯子并不一定有。

4、依賴倒置DIP;

要求耦合盡量都是抽象的,類關系之間的依賴都應該是具體依賴抽象,是比較難實現(xiàn)的地方。

描述如2、開放閉合原則;

5、接口隔離ISP;

一個接口的方法應該盡量精簡,一個大的接口可以繼承自小的接口,一個具體類應該依賴自最小接口,從而避免實現(xiàn)無用的方法。

如果 “把手容器接口”繼承自“把手接口”和“容器接口”,杯子直接繼承“把手容器接口”。因為這個時候“把手”是不確定,有三種處理選擇:一、把杯子變成抽象類,抽象“把手接口”的方法;二、依賴一個 “把手”對象 ; 三、生成空方法無論哪一種都是可愛的感覺

6、自己舒服原則;

杯子好不好用,自己知道。 如我們都知道,高內(nèi)聚低耦合是代碼的追求。 聚合/合成原則是一種強耦合原則,而迪米特法則也是一種實踐出來的經(jīng)驗法門。地要怎么種不是死的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容