【前言】 |
学习这个设计模式也有一段时间了,但是就是不知道怎么去总结他的知识点。经过今天看别人总结的博客以及今天下午开师徒会和师父的一个交流决定写本篇博客。
【主要内容】 |
在本篇博客中主要总结一下设计模式的分类以及一些设计模式所遵循的原则。
【创建型模式】 |
首先呢,我们要做的就是去创建一个对象,那么就涉及到创建的问题,也就出现了创建对象时的以下几种模式:
简单工厂模式(Simple Factory)
工厂方法模式(Factory Method)
抽象工厂模式(Abstract Factory)
创建者模式(Builder)
原型模式(Prototype)
单例模式(Singleton)
【结构型模式】 |
在创建过程中是以一个怎么样的结构去创建的,那么就要靠以下这几种模式去解决。
外观模式/门面模式(Facade门面模式)
适配器模式(Adapter)
代理模式(Proxy)
装饰模式(Decorator)
桥梁模式/桥接模式(Bridge)
组合模式(Composite)
享元模式(Flyweight)
然后来说一下行为型模式,下面是行为型模式的一些组成模式:
模板方法模式(Template Method)
观察者模式(Observer)
状态模式(State)
策略模式(Strategy)
职责链模式(Chain of Responsibility)
命令模式(Command)
访问者模式(Visitor)
调停者模式(Mediator)
备忘录模式(Memento)
迭代器模式(Iterator)
解释器模式(Interpreter)
【行为型模式】 |
在对象的结构和对象的创建问题都解决了之后,就剩下对象的行为问题了,如果对象的行为设计的好,那么对象的行为就会更清晰,它们之间的协作效率就会提高,这里有11个具体的行为型模式可供研究,它们分别是:
模板方法模式(Template Method)
观察者模式(Observer)
状态模式(State)
策略模式(Strategy)
职责链模式(Chain of Responsibility)
命令模式(Command)
访问者模式(Visitor)
调停者模式(Mediator)
备忘录模式(Memento)
迭代器模式(Iterator)
解释器模式(Interpreter)
【原则】 |
单一职责原则:就一个类而言,应该只有一个引起它变化的原因。
开放-封闭原则:软件实体(类、模块、函数等等)应该可以扩展,但是不可以修改。
依赖倒转原则:(1)、高层模块不应该依赖于低层模块,两个都应该以来抽象。(2)、抽象不应该依赖细节,细节应该依赖抽象。
里氏代换原则:子类必须能够替换掉他们的父类:一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别。也就是说,在软件里,把父类都替换成它的子类,程序行为没有变化。
迪米特原则(最少知识原则):如果两个类不必彼此直接通信,那么两个类就不应当发生直接的相互作用。如果其中一个类需要调用另 一个类的某一个方法的话,可以通过第三者转发这个调用。强调了类之间的松耦合,耦合越弱越有利于复用。一个处于松耦合的类被修改,不会对有关系的类造成波及。
合成/聚合复用原则:尽量使用合成/聚合,尽量不去使用类继承。
【总结】 |
在这里小编就是先简单介绍一下都有哪些设计模式,以及他们具体之间可以分成哪几类,还有一些需要遵循的原则。那么在接下来的总结中会具体的去说一下各种模式。如有什么疏漏之处还请大家斧正。(跟一波风潮~)