看了一些大牛的书,对设计模式仍然有些模糊,所以想写点东西沉淀下来,以后可以再看。再此之前,感谢贡献设计模式知识的这些人1
设计模式
1.什么是设计模式?
经过验证的,用于解决特定环境下、重复出现的、特定问题的解决方案。
2.设计模式、框架的区别?
设计模式和框架是两种不同层面的问题,设计模式只是一种解决问题的方法,不同的语言有不同的实现,是一种软件的知识理论。框架是解决具体业务的代码集合,对于业务的复杂程度,可以包含多种设计模式,是设计模式的具体展示。两者相同的思想在于解决重复性的问题,提高效率。框架不完全依赖于设计模式,但良好的运用设计模式可以提升框架的整体水平。
设计原则
1.什么是设计原则?
设计模式所倚赖遵循的规则,就像支配万事万物的真理,是设计模式的理论基础也是设计模式的灵魂。
2.设计原则具体内容有哪些?
- SRP 单一职责原则
就一个类而言,应该仅有一个引起它变化的原因,一个类一个职责 - OCP 开放-封闭原则
函数、类、模块应该对扩展开放,对修改关闭 - LSP 里氏替换原则
子类型必须能够替换掉它们的基类 - DIP 依赖倒置原则
抽象不依赖于具体细节,细节应该依赖于抽象 - ISP 接口隔离原则
不应该强迫客户依赖于它们不用的方法,类间的依赖应该建立在最小的接口上,接口的方法应该少而精,高度纯洁 - REP 重用发布等价原则
重用的粒度就是发布的粒度。一个组件中的类要么都是可以重用的,要么就都不可以重用。 - CCP 共同封闭原则
包中的所有类对于同一类型的变化应该是共同封闭的。一个变化若对一个包产生影响,则将对该包中所有类产生影响,而对其它包不产生影响。 - CRP 共同重用原则
一个包中的所有类应该是共同重用的。如果重用了包中的一个类,那么就要重用包中的所有类。 - ADP 无环依赖原则
包的依赖关系图中不允许存在环 - SDP 稳定依赖原则
朝着稳定的方向依赖 - SAP 稳定抽象原则
包的抽象程度应该和稳定程度一致
对于后面的几种原则,可以参考博客2,以后我再细细体会
- http://www.cnblogs.com/justinw/archive/2006/11/28/574573.html
秦小波《设计模式之禅》
陈臣、王斌《研磨设计模式》
John Metsker、William C. Wake《Java设计模式》
GOF《设计模式:可复用面向对象软件的基础》
Robert C. Martin《敏捷软件开发—原则、模式与实践》 ↩ - http://blog.csdn.net/it_man/article/details/38292925
http://blog.csdn.net/Serenada/article/category/928524 ↩