学习设计模式——模式、原则

看了一些大牛的书,对设计模式仍然有些模糊,所以想写点东西沉淀下来,以后可以再看。再此之前,感谢贡献设计模式知识的这些人1

设计模式

1.什么是设计模式?

经过验证的,用于解决特定环境下、重复出现的、特定问题的解决方案。

2.设计模式、框架的区别?

设计模式和框架是两种不同层面的问题,设计模式只是一种解决问题的方法,不同的语言有不同的实现,是一种软件的知识理论。框架是解决具体业务的代码集合,对于业务的复杂程度,可以包含多种设计模式,是设计模式的具体展示。两者相同的思想在于解决重复性的问题,提高效率。框架不完全依赖于设计模式,但良好的运用设计模式可以提升框架的整体水平。

设计原则

1.什么是设计原则?

设计模式所倚赖遵循的规则,就像支配万事万物的真理,是设计模式的理论基础也是设计模式的灵魂。

2.设计原则具体内容有哪些?
  • SRP 单一职责原则
    就一个类而言,应该仅有一个引起它变化的原因,一个类一个职责
  • OCP 开放-封闭原则
    函数、类、模块应该对扩展开放,对修改关闭
  • LSP 里氏替换原则
    子类型必须能够替换掉它们的基类
  • DIP 依赖倒置原则
    抽象不依赖于具体细节,细节应该依赖于抽象
  • ISP 接口隔离原则
    不应该强迫客户依赖于它们不用的方法,类间的依赖应该建立在最小的接口上,接口的方法应该少而精,高度纯洁
  • REP 重用发布等价原则
    重用的粒度就是发布的粒度。一个组件中的类要么都是可以重用的,要么就都不可以重用。
  • CCP 共同封闭原则
    包中的所有类对于同一类型的变化应该是共同封闭的。一个变化若对一个包产生影响,则将对该包中所有类产生影响,而对其它包不产生影响。
  • CRP 共同重用原则
    一个包中的所有类应该是共同重用的。如果重用了包中的一个类,那么就要重用包中的所有类。
  • ADP 无环依赖原则
    包的依赖关系图中不允许存在环
  • SDP 稳定依赖原则
    朝着稳定的方向依赖
  • SAP 稳定抽象原则
    包的抽象程度应该和稳定程度一致

对于后面的几种原则,可以参考博客2,以后我再细细体会


  1. http://www.cnblogs.com/justinw/archive/2006/11/28/574573.html
    秦小波《设计模式之禅》
    陈臣、王斌《研磨设计模式》
    John Metsker、William C. Wake《Java设计模式》
    GOF《设计模式:可复用面向对象软件的基础》
    Robert C. Martin《敏捷软件开发—原则、模式与实践》
  2. http://blog.csdn.net/it_man/article/details/38292925
    http://blog.csdn.net/Serenada/article/category/928524
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值