设计模式概述 | 张扎瓦的博客

设计模式概述

四人帮23种设计模式概述


什么是设计模式

  设计模式,是指在软件开发中,经过验证的,用于解决在特定环境下,重复出现的、特定问题的解决方案。通俗的说,就是解决特定问题的套路方法。

为什么要学设计模式

  1. 他山之石,可以攻玉。学习别人解决问题的思路,以后自己碰到了就可以很好的解决同样的问题。
  2. 提升逼格。让自己的代码更优雅,更有设计感。

如何学习设计模式

  1. 心态要稳,学习要狠。不要指望一步登天,心浮气躁。
  2. 理论与实践相结合。多写多思考,在实际开发中使用,然后再结合理论思考,然后再应用,再思考……如此循环,反复多次,直到达到对设计模式掌握的水平。

学习设计模式的三个层次

鹦鹉学舌

  能够正确理解和掌握每个设计模式的基本知识,能够识别在什么场景下,出现了什么样的问题,采用何种方案解决它,并能够在实际的程序设计和开发中套用相应的设计模式。

照猫画虎

  能根据具体的实际情况,对设计模式进行适当的变形使用,能够确保正确使用设计模式,而不是生搬硬套。

学以致用

  真正的设计模式是没有模式。从本质上已经掌握了设计模式的精髓,并完全融入到了自己的思想中。在设计程序的时候,可以随意的,自然而然的运用。


上面基本都是废话,下面来点干货。

设计模式的六大原则

开闭原则

一个软件的实体(类、方法、模块等),应该对扩展开放,对修改关闭。

依赖倒置原则

高层模块不应该依赖底层模块,两个都应该依赖抽象。

抽象不应该依赖细节,细节应该依赖抽象。

迪米特法则

如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。

单一职责原则

一个类只做一种类型责任,当这个类需要承担其他类型的责任的时候,就需要分解这个类。

里氏替换原则

接口或类出现的地方,他们的实现或者子类可以完全替换调他们。

接口隔离原则

不要提供一个大的接口包含所有功能,要根据功能把这些接口分割,减少依赖。

设计模式分类

创建型模式

创建型模式有五种。

单例模式、工厂模式、建造者模式、原型模式、适配器模式。

结构型模式

结构型模式有七种。

适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。

行为模式

行为模式有十一种。

模板方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、责任链模式、访问者模式。

设计模式

从封装变化角度分类

组件协作

模板方法、策略模式、观察者模式

单一职责

装饰模式、桥接模式

对象创建

工厂模式、抽象工厂模式、原型模式、建造者模式

对象性能

单例模式、享元模式

接口隔离

外观模式、代理模式、中介者模式、适配器模式

状态变化

备忘录模式、状态模式

数据结构

组合模式、迭代器模式、责任链模式

行为变化

命令模式、访问者模式

领域问题

解释器模式

重构获得模式

面向对象设计模式是“好的面向对象设计”,所谓“面向对象设计”,指的是那些可以满足“应对变化,提高复用”设计。

现代软件的设计特征是“需求的频繁变化”。设计模式的要点是“寻找变化点,然后在变化点处应用设计模式”,从而来更好的应对需求的变化。什么时候,什么地点应用设计模式,比理解设计模式本身更为重要。

设计模式的应用不宜先入为主,一上来就使用设计模式,是对设计模式的最大误用。没有一步到位的设计模式,敏捷开发实践提倡的“Refactoring to Patterns”是目前普遍公认的最好的使用设计模式的方法。

如果我的文章对您有所帮助,不妨打赏一杯豆浆以资鼓励(○` 3′○)