6大设计原则与常见设计模式(概述)
关于设计模式(原则),看到这样一段有趣的话。
如果写程序比作打架
那设计模式就是套路,比如长拳、永春啥的
都是打架,有的是大侠切磋,有的是流氓群殴
但大侠有时候也未必大的过流氓,因为流氓不按套路出牌
流氓牛了,厉害了,流氓的打架方法慢慢就成了新的套路,流氓也就编程里的大侠了
设计模式即是如此,起初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