设计模式

来源:互联网 发布:windows域搭建 编辑:程序博客网 时间:2024/06/08 18:10

1.什么是设计模式?

设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。
使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。
为什么要提倡“Design Pattern呢?根本原因是为了代码复用,增加可维护性。

2.怎么实现?

为了实现代码复用,增加可维护性,设计模式提出了六大原则。

单一职责原则
不要存在多于一个导致类变更的原因,也就是说每个类应该实现单一的职责,否则就应该把类拆分。

里氏替换原则
任何基类可以出现的地方,子类一定可以出现。通俗的来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能。

依赖倒置原则
高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。
依赖倒置原则的核心就是要我们面向接口编程,理解了面向接口编程,也就理解了依赖倒置。

接口隔离原则
客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。
如果接口过于臃肿,只要接口中出现的方法,不管对依赖于它的类有没有用处,实现类中都必须去实现这些方法,这显然不是好的设计。

迪米特法则
一个对象应该对其他对象保持最少的了解。
类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。

开闭原则
一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。
当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。

制定这六个原则的目的并不是要我们刻板的遵守他们,而需要根据实际情况灵活运用。对他们的遵守程度只要在一个合理的范围内,就算是良好的设计。

3. 设计模式的种类

设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

4.为什么要学设计模式

我们之所以要学习设计模式,并不是把具体的某些模式原原本本地照搬来用,而是通过学习这些模式,了解到底什么是“封装变化”,“对象间松耦合”,“针对接口编程”等概念,从而设计出符合前面所讲到四个特性——易维护,易扩展,易服用,灵活性好的程序。

在《大话设计模式》这本书中,说道学习设计模式有四个层次,分别是

  1. 没学之前是一点不懂,根本想不到用设计模式,写出的代码很糟糕;
  2. 学了几个模式之后,于是总想着要用自己学过的模式,于是时常造成误用模式而自己却不知道;
  3. 学完全部的模式之后,感觉模式之间都很相似,分不清差异,有困惑,但深知误用设计模式的害处,应用之时很犹豫
  4. 灵活应用模式,甚至不应用具体的某种模式也能设计出非常优秀的代码,以达到无剑胜有剑的境界。

希望以后能达到第四种境界,加油。

原创粉丝点击