如何寫好代碼?你必須知道的幾個(gè)原則

簡介

在編程技術(shù)里,靈魂之上的東西某過于設(shè)計(jì)模式。設(shè)計(jì)模式之上的東西其實(shí)就是純粹的準(zhǔn)則?;跍?zhǔn)則之上的代碼才有靈魂可言,經(jīng)得起推敲,也經(jīng)得起考驗(yàn)。

通俗,設(shè)計(jì)模式其實(shí)很多,從個(gè)人的角度而言 原則凌駕于設(shè)計(jì)模式之上。 所以沒有必要去死記設(shè)計(jì)模式。每個(gè)設(shè)計(jì)模式,都是基于某寫特定的原則解決特定問題而產(chǎn)生的。 所以原則比設(shè)計(jì)模式重要,駕馭了原則,其實(shí)就可以拋開設(shè)計(jì)模式了。

本篇于在于引導(dǎo), 所以不夠詳細(xì)。大家可以自己詳細(xì)去理解和體會(huì)每個(gè)原則。 大神可以繞過。

本篇的主要目的在于, 希望那些只知道實(shí)現(xiàn)而不懂設(shè)計(jì)的程序員,可以更深去領(lǐng)會(huì)如何設(shè)計(jì)代碼。 代碼質(zhì)量不在于實(shí)現(xiàn),而在于設(shè)計(jì)。 代碼質(zhì)量的核心目的是易維護(hù),而不是實(shí)現(xiàn)了多么牛逼的功能。

單一職責(zé)原則

定義

就一個(gè)類而言,應(yīng)當(dāng)僅有一個(gè)引起它變化的原因。

說明

所謂單一職責(zé)就是一個(gè)類設(shè)計(jì)之初它所在職責(zé)就是確定的,而且是某一個(gè)方面的。

類的職責(zé)是清晰的體現(xiàn)在某個(gè)方面,而不是做的事情很多,無法概況。

比喻

就是員工的職責(zé)分配,單一的而不是交叉的。這樣才能把事情做好。

開放封閉原則

定義

軟件實(shí)體(類,模塊,函數(shù))應(yīng)該是可以擴(kuò)展,但是不可修改

說明

所謂擴(kuò)展就是開放接口,開放抽象。所謂不可修改,就是實(shí)體在擴(kuò)展之上不需要去調(diào)整代碼。

擴(kuò)展的原則就一點(diǎn)把不可確定的東西抽象,或者是不可固定的東西抽象。讓具體的對象去實(shí)現(xiàn)。主要體現(xiàn)在以下幾個(gè)方面。

  • 可注冊
  • 可回調(diào)
  • 可配置

依賴倒轉(zhuǎn)原則

定義
  • 高層模塊不應(yīng)該依賴低層模塊。兩個(gè)都應(yīng)該依賴抽象
  • 抽象不應(yīng)該依賴細(xì)節(jié)。細(xì)節(jié)應(yīng)該依賴抽象。
說明

這個(gè)主要還是抽象的問題, 避免出現(xiàn)互相依賴,或者不必要的依賴。 可以引入第三方那就是抽象。

這個(gè)是對依賴性的約束。

迪米特法則

定義

如果兩個(gè)類不必彼此直接通訊,那么這兩個(gè)類不應(yīng)當(dāng)發(fā)生直接的相互作用。如果其中一個(gè)類要調(diào)用另一個(gè)類的話。可以通過第三方轉(zhuǎn)發(fā)這個(gè)調(diào)用。

說明

核心目標(biāo)就是為了避免互相調(diào)用。引入第三方類進(jìn)行整合。

這個(gè)是對整合性約束。

總結(jié)

主要基于核心的原則進(jìn)行編碼,我相信你的代碼質(zhì)量可以上一個(gè)臺(tái)階。

本章篇幅很小,也沒有很細(xì)節(jié)的去說明。如果有時(shí)間可以逐一針對性的講解,希望大家諒解。

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

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

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