设计模式笔记(1)

来源:互联网 发布:911事件前因后果知乎 编辑:程序博客网 时间:2024/05/29 18:13

最近一直在看设计模式的书,包括Gof的设计模式,阎宏的Java与模式,另外还有大话设计模式和headFirst模式。

 

横向比较了每本书对某个模式的具体描述和应用,现将对模式的思考和体会作为笔记分享下哈

 

写在模式之前的一些设计原则

  • 单一职责:就一个类而言,应该仅有一个引起它变化的原因。即一个职责的变化不会影响这个类完成其他职责的能力
  • 开发-封闭原则:软件尸体(类、模块、函数等等)应该可以扩展,但不可以修改。同时,面对需求,对程序的改动是通过增减新代码进行的,而不是更改现有的代码。
  • 依赖倒转原则:针对接口编程,不要对实现编程。抽象不应该依赖细节,细节应该依赖抽象。
  • 里氏代换原则:子类型必须能替换他们的父类型。

1-装饰模式

     eg.孙悟空的七十二变化,变化成A,可以说成悟空从一只猢狲装饰成A(将A的功能加到了猢狲身上)

     eg.一份加牛奶的咖啡,可以当成用牛奶来装饰咖啡的结果

  •      形变神不变是装饰模式的关键点。对悟空的七十二变化来说,不管他变成什么样子,他永远是一只猢狲,而他的变化只是在客户端显示的结果。而一杯咖啡,不管它加了牛奶或者其他调料,它的本质仍然是一份咖啡。
  • 装饰者和被装饰者有相同的超类型,在任何需要原始对象的场合,都可以用装饰过的对象来代替它。
  • 装饰模式可以动态的给一个对象增加一些额外的职责。