一说起设计模式,都能扯出一大堆玄之又玄的原则啊,理论啊什么的,更有一堆官方的科学术语,初学者看着云里雾里的,大神又食之无味。本系列,我们一起来来聊聊设计模式,以大白话的方式讲解设计模式的,可能存在着不合理,不恰当,各位看官请多包涵。
一直以来,设计模式被奉为解决某个领域特定问题的最佳实践,这点我赞同,毕竟这些解决方案都是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的,经得起时间的考验。看到这你可能会发问,某个领域特点问题具体指向的是哪些呢?它们具体有什么特点呢?那这就牵扯到设计模式要遵守设计原则与设计分类啦。
设计模式原则一说有6大,一说有7大,不管有几大,都讲讲。设计模式公认的7大原则有:
1:单一职责原则(SRP:Single Responsibility Principle)
2:接口隔离原则(ISP:Interface Segregation Principle)
3:依赖倒转(倒置)原则(DIP:Dependence Inversion Principle)
4:里氏替换原则(LSP:Liskov Substitution Principle)
5:开闭原则(OCP:Open Closed Principle)
6:迪米特法则(LOF:Law Of Demeter)
7:合成复用原则(CRP:Composite Reuse Principle)
后面我们会一一介绍,此处就做一个列表。
经过前人的总结再总结,实践再实践,目前比较认可的设计模式总共有23种,虽说市面上还有很多其他的设计模式,但那些设计模式或多或少有这23种设计模式的影子,所以可以认为是23种设计模式的衍生模式。
这23种设计模式根据它们的功能(实现方式)大体分为3大类,分别是:创建型模式,结构型模式,行为型模式
该类设计模式提供一直创建对象新思路,传统的创建对象方式是使用 new 运算符直接实例化对象,这就暴露了创建实例方式与初始方式, 而该设计模式提出新的想法,通过代码方式隐藏实例对象的创建过程与初始细节,这使得程序在判断针对某个给定实例需要创建哪些对象时显得更加灵活。这类设计模式包括:
0>简单工厂模式(Simple Factory Pattern)
1>工厂模式(Factory Pattern)
2>抽象工厂模式(Abstract Factory Pattern)
3>单例模式(Singleton Pattern)
4>建造者模式(Builder Pattern)
5>原型模式(Prototype Pattern)
该类设计模式关注类和对象的组合。减少继承的使用,灵活使用接口组合和对象组合,从而获得到意想不到的效果,这类设计模式包括:
1>适配器模式(Adapter Pattern)
2>桥接模式(Bridge Pattern)
3>过滤器模式(Filter、Criteria Pattern)
4>组合模式(Composite Pattern)
5>装饰器模式(Decorator Pattern)
6>外观模式(Facade Pattern)
7>享元模式(Flyweight Pattern)
8>代理模式(Proxy Pattern)
该类设计模式关注对象之间如何通信
1>责任链模式(Chain of Responsibility Pattern)
2>命令模式(Command Pattern)
3>解释器模式(Interpreter Pattern)
4>迭代器模式(Iterator Pattern)
5>中介者模式(Mediator Pattern)
6>备忘录模式(Memento Pattern)
7>观察者模式(Observer Pattern)
8>状态模式(State Pattern)
9>空对象模式(Null Object Pattern)
10>策略模式(Strategy Pattern)
11>模板模式(Template Pattern)
12>访问者模式(Visitor Pattern):
居上,很多设计模式大家看得云里雾里了,没关系,后面我们会一一进行讲解。