设计模式特点

1,设计模式的由来基于面向对象思想(抽象,继承,封装,多态),不断对好的设计进行总结,最后形成理论体系 通俗的讲,设计模式就是解决问题的方式 读

1,设计模式的由来

  基于面向对象思想(抽象,继承,封装,多态),不断对好的设计进行总结,最后形成理论体系.通俗的讲,设计模式就是解决问题的方式.

  读<Head First设计模式> 中提到设计原则:

 

  • 1 封装变化。
  • 2 多用组合少用继承。 3 针对接口编程,不针对实现编程。
  • 4为交互对象之间的松耦合设计而努力。
  • 5类应该对扩展开放,对修改关闭。
  • 6依赖抽象,不要依赖具体类。
  • 7只和朋友交谈。
  • 8别找我,我会找你。
  • 9 类应该只有一个改变的理由。

 

2,如何学习设计模式

  理解它的应用场景,解决了哪些问题,有什么好处,以及实现方式.

  好的项目不是开始时就设计出来的,而是经过不断的修改完善而产生的.(这里并不代表开始就不用好好的设计)

 3,分类

参考<<GOF>>一书

根据使用目的分类:创建型,结构型,行为型

创建型:主要重点在于对象的实例化过程

具体有:抽象工厂(Abstract factory),生成器(Builder),工厂方法(Factory method),原型(Prototype),单件(Singleton)

结构型:主要重点在于如何组合类之间的关系,构建强大的结构

具体有:适配器(Adapter),桥接(Bridge),组合(Composite),装饰(Decorator),外观(Facade),享元(FlyWeight),代理(Proxy)

行为型:主要在于类与类之间的行为通信

具体有:职责链(Chain of reSponsibility),命令(Command),解释器(Interpreter),迭代器(Iterator),中介者(Mediator),备忘录(Memento),观察者(Observer),状态(State),策略(Strategy),模板方法(Template method),访问者(Visitor)

 

 随手附上一张书中的关系图

 

 

4总结

使用哪个设计模式没有绝对的.

补充:

关于复用

方式有三种:继承,组合,参数化类型(基本不用)  优先使用组合,使代码保持封装,更灵活,但是比较低效(因为有间接性)

您可能有感兴趣的文章
前端的设计模式