關於設計模式(原則),看到這樣一段有趣的話。
如果寫程序比作打架
那設計模式就是套路,比如長拳、永春啥的
都是打架,有的是大俠切磋,有的是流氓群毆
但大俠有時候也未必大的過流氓,因為流氓不按套路出牌
流氓牛了,厲害了,流氓的打架方法慢慢就成了新的套路,流氓也就編程里的大俠了
設計模式即是如此,起初GOF是四個和我們差不多的流氓
但是架打多了,他們注意總結和分析,從群毆中整理了一組套路出來,就是GOF23模式,所以他們就成為大俠了
你想成為大俠,先學套路是對的,但是也要注意實際應用,不要死套套路
結合套路慢慢形成自己風格,你就不是流氓了。
編碼遵循設計原則是為了代碼復用,增加代碼健壯性、可維護性。
6大設計原則:
(1) 單一職責原則(Single Responsibility Principle,SRP)
(2) 里氏替換原則(Liskov Substitution Principle,LSP)
(3) 依賴倒置原則(Dependence Inversion Principle,DIP)
(4) 接口隔離原則(Interface Segregation Principle,ISP)
(5) 迪米特法則(Law Of Demeter,LOD)
(6) 開閉原則(Open Closed Principle,OCP)
(補充) 組合/聚合復用原則(Composite/Aggregate Reuse Principle,CARP)
6大設計原則詳解(一):http://www.cnblogs.com/LangZXG/p/6242925.html
6大設計原則詳解(二):http://www.cnblogs.com/LangZXG/p/6242927.html
設計模式就是實現了這些原則,從而達到代碼復用、增加代碼的健壯性、可維護性的目的。
23種設計模式:
1. 創建型模式(5)
(1) 單例模式(詳解:http://www.cnblogs.com/LangZXG/p/6248835.html)
(2) 工廠方法模式
(3) 抽象工廠模式(2種模式詳解:http://www.cnblogs.com/LangZXG/p/6249425.html)
(4) 建造者模式
(5) 原型模式
2. 結構型模式(7)
(1) 適配器模式(詳解鏈接)
(2) 裝飾模式(詳解鏈接)
(3) 代理模式(詳解鏈接)
(4) 組合模式
(5) 享元模式
(6) 外觀模式/門面模式(詳解鏈接)
(7) 橋接模式(詳解鏈接)
3. 行為型模式(11)
(1) 模板方法模式
(2) 中介者模式
(3) 命令模式(詳解鏈接)
(4) 責任鏈模式
(5) 策略模式(詳解鏈接)
(6) 迭代器模式
(7) 觀察者模式(詳解鏈接)
(8) 備忘錄模式
(9) 訪問者模式
(10) 狀態模式
(11) 解釋器模式
持續更新中...
類圖基本知識: http://www.cnblogs.com/LangZXG/p/6208716.html