设计模式之概要

什么时候使用设计模式

  对于很多人来说,设计模式是一个很高大上的东西。当然,恰当的使用设计模式确实能达到事半功倍的效果,能帮助我们解决一些复杂的业务场景,减少耦合,让我们的逻辑更清晰,代码更美观,更具有维护性。

  但是,什么时候该用设计模式?是不是只要符合设计模式的场景就要用设计模式呢?当然不是,使用设计模式一般要注重两点:一,这个地方的代码反复修改,事不过三,第三次修改时就该引入设计模式了,减少后面的维护成本;二,如果在刚开发的就有明确的业务需求支撑,即业务变化点超过3个,这时可以考虑立即引入相应的设计模式。所有设计模式的使用都应遵循这个规则,以后不再累述。

   其实使用设计模式主要也是为了让程序满足程序设计的两大原则:1.单一职责,2.开放闭合原则。这也是为什么有些设计模式看着很相似,但是却分成了多种设计模式的原因,就是因为这些设计模式的设计出发点不同,如果融合到一个设计模式中势必会打破这两个原则。

   从另个角度来看,我们所谓的编程就是将现实世界的东西虚拟化,虚拟成计算机可以识别的程序,而设计模式其实也是现实世界中处理不同场景下问题的方式的反应。

设计模式的本质

  设计模式是软件设计中常见问题的通用可重用的解决方案,与语言无关。

  • 本质还是面向对象。封装,继承,多态。
  • 只要是变化点,关注点高的,都可以考虑封装起来。封装成类,封装成方法等。
  • 只要是需要重用代码的,都可以通过继承来实现。现在jd8有默认方法,有的时候也可以解决。
  • 只要想做抽象、解耦的时候都可以使用多态。
  • 设计模式只是让人以更快的捷径了解部分面向对象,也减少了经典场景的使用面向对象思考的时间。

设计原则

  第一个设计原则:找出应用中可能需要变化之处,把它们独立出来,不和那些不需要变化的部分混合在一起。为了分开变化和不变化的部分,需要准备两组类

  第二个设计原则:针对接口编程,不针对实现编程。针对接口编程的真正意思是针对超类型编程。

  第三个设计原则:多用组合,少用继承。用行为类组合,而不是行为的继承,更有弹性。

好处 

  • 减少重复代码
  • 解耦,让功能更健壮,互相之间不影响。
  • 可扩展性更好,修改的时候关注点更少。

设计模式分类

  创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

  结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

  行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

设计模式分类

简单工程模式

职责链模式

代理模式

装饰者模式

策略模式

观察者模式

原文地址:https://www.cnblogs.com/htyj/p/12844705.html