一句话评论设计模式六大原则
原則,故名思議則是本質(zhì)的意思。所謂擒賊先擒王,研究設(shè)計 模式自然要先了解設(shè)計原則,所有的模式都是在這些原則的基礎(chǔ)之上發(fā)展起來的,有的是側(cè)重一個,有的是多個都有所涉及。看完設(shè)計模式之后,我感覺到每個模式 都有這些原則的影子,還滲透著面向?qū)ο蟮娜髮傩?#xff0c;也覺得這些原則也都有相通之處,,正是有了他們才使我們由代碼工人轉(zhuǎn)為藝術(shù)家。下面我來點評一下六大原 則,望各位拍磚:
1、單一職責(zé)原則(Single Responsibility Principle,簡稱SRP)
? ?? ?單一職責(zé)原則,就一個類而言,應(yīng)該僅有一個引起它變化的原因。如果一個類承擔(dān)的職責(zé)過多,就等于把這些職責(zé)耦合在一起,一個職責(zé)的變化可能會消弱或者一 直這個類完成其他職責(zé)的能力。這種耦合會導(dǎo)致脆弱的設(shè)計,當(dāng)變化發(fā)生時,設(shè)計會遭受到意想不到的破壞。而軟件設(shè)計真正要做的許多內(nèi)容,就是發(fā)現(xiàn)職責(zé),并把 這些職責(zé)相互分離。
? ?? ?一句話點評:高內(nèi)聚低耦合的絕佳體現(xiàn),不要亂拉關(guān)系,獨善其身挺好。
2、 開放--封閉原則(The Open-Closed Principle,簡稱OCP)
? ?? ? 開放--封閉原則,是說軟件實體(類、模塊、函數(shù)等等)應(yīng)該可以擴展,但是不可以修改。即對于擴展是開放的,對于更改是封閉的。 我們不可能做到未卜先知,在設(shè)計的時候盡可能讓一個類足夠好,設(shè)計好了就不要去修改了;不能完全封閉的情況下,當(dāng)發(fā)生變化時,我們就創(chuàng)建抽象來隔離以后發(fā) 生的同類變化。
? ?? ?一句話點評:開放擴展,封閉更改,開合有度是一門藝術(shù)。
3、依賴倒轉(zhuǎn)原則(Dependence Inversion Principle )
? ?? ?依賴倒轉(zhuǎn)原則,指高層模塊不應(yīng)該依賴低層模塊,兩個都應(yīng)該依賴抽象;抽象不應(yīng)該依賴細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴抽象。說白了就是要針對接口編程,不要對實現(xiàn)編 程。舉個例子:計算機硬件中,如果內(nèi)存壞了,那么只需要換一個內(nèi)存條就可以了,而不需要去換一個主板,在這里內(nèi)存是一個接口類,只要符合他的規(guī)格要求就 行,無論是那一根。
? ???一句話點評:搞建筑時要做設(shè)計師,而不是磚瓦工,抽象的藍(lán)圖要靠具體的材料一點點實現(xiàn)。
4、里氏代換原則(Liskov Substitution Principle,簡稱LSP)
? ???里氏代換原則,子類型必須能夠替換掉他們的父類型。在軟件里面,把父類都替換成其子類,程序的行為不會發(fā)生變化。正是由于子類型的可替換性才使得使用父類型的模塊在無需修改的情況下就可以擴展。
? ???一句話點評:長輩給了你繼承的權(quán)利就一定要做贍養(yǎng)的義務(wù),把長輩的職責(zé)都要承擔(dān)起來。
5、迪米特法則(Law of Demeter)
? ?? ?迪米特法則,如果兩個類不必彼此直接通信,那么這兩個類就不應(yīng)當(dāng)發(fā)生直接的相互作用。如果其中一個類需要調(diào)用另一個類的某一個方法時,可以通過第三者轉(zhuǎn) 發(fā)這個調(diào)用。類之間的耦合越弱,就越有利于復(fù)用,一個處在弱耦合的類被修改,不會對有關(guān)系的類造成波及。 主要是強調(diào)了類之間的松耦合。
? ???一句話點評:不要和陌生人說話,若兩國交戰(zhàn)要盡量避免正面沖突,多派使者協(xié)商調(diào)度。
6、合成/聚合復(fù)用原則(Composition/Aggregation Principle],簡稱CARP)
? ???合成聚合復(fù)用原則,盡量使用合成/聚合,盡量不使用類繼承。合成聚合是“has??a”的關(guān)系,而繼承是“is??a”的關(guān)系。由于繼承是一中強耦 合的結(jié)構(gòu),父類變,子類必變。所以不是“is??a”關(guān)系,我們一般不要用繼承。優(yōu)先使用合成聚合復(fù)用原則,有助于保持每個類的封裝,降低繼承的層次。
? ???一句話點評:優(yōu)生優(yōu)育,不要盲目繁衍
本文轉(zhuǎn)自:http://blog.csdn.net/educast/article/details/7226846
總結(jié)
以上是生活随笔為你收集整理的一句话评论设计模式六大原则的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL Server中的CLR编程——用
- 下一篇: tomcat7.027-webSocke