面向?qū)ο蟪绦蛟O(shè)計特點(diǎn):封裝、繼承和多態(tài)
設(shè)計原則、模式不產(chǎn)生代碼,只是代碼邏輯上的一種規(guī)范。
1.SOLID
一、單一職責(zé)原則:
全稱:“Single-Responsibility Principle”
每一個類應(yīng)該專注于做一件事情。
二、開放-封閉原則
全稱:“Open-Closed Principle”
面向擴(kuò)展開放,面向修改關(guān)閉。
三、里氏代換原則
全稱:“Liskov Substitution Principle”
超類存在的地方,子類是可以替換的。
四、接口隔離原則
全稱:“Interface Segregation Principle”
應(yīng)當(dāng)為客戶端提供盡可能小的單獨(dú)的接口,而不是提供大的總的接口。
五、依賴倒置原則
全稱:“Dependence Inversion Principle”
實現(xiàn)盡量依賴抽象,不依賴具體實現(xiàn)。
這個原則是開閉原則的基礎(chǔ),具體內(nèi)容:針對接口編程,依賴于抽象而不依賴于具體。
具體依賴抽象,上層依賴下層。假設(shè)B是較A低的模塊,但B需要使用到A的功能,這個時候,B不應(yīng)當(dāng)直接使用A中的具體類;而應(yīng)當(dāng)由B定義一抽象接口,并由A來實現(xiàn)這個抽象接口,B只使用這個抽象接口;這樣就達(dá)到了依賴倒置的目的,B也解除了對A的依賴,反過來是A依賴于B定義的抽象接口。通過上層模塊難以避免依賴下層模塊,假如B也直接依賴A的實現(xiàn),那么就可能造成循環(huán)依賴。
所以:采用依賴倒置原則可以減少類間的耦合性,提高系統(tǒng)的穩(wěn)定性,減少并行開發(fā)引起的風(fēng)險,提高代碼的可讀性和可維護(hù)性。
六、迪米特原則,又稱最少知道原則
全稱:“Law of Demeter”
一個軟件實體應(yīng)當(dāng)盡可能少的與其他實體發(fā)生相互作用。
七、組合/聚合復(fù)用原則
全稱:“Composite/Aggregate Reuse Principle CARP”
盡量使用合成/聚合達(dá)到復(fù)用,盡量少用繼承。原則: 一個類中有另一個類的對象。
八、高內(nèi)聚、低耦合
高內(nèi)聚指的就是單一職責(zé)原則,一個類做的職責(zé)越單一,內(nèi)聚度就越高,低耦合,指的就是依賴倒置原則,盡量使用抽象耦合去代替具體耦合
參考鏈接1.面向?qū)ο笃叽笤O(shè)計原則
參考鏈接2.面向?qū)ο蟪绦蛟O(shè)計八大原則
參考鏈接3.面向?qū)ο笤O(shè)計的七個原則
參考鏈接4.面向?qū)ο蟪绦蛟O(shè)計與原則