设计模式主要解决,对象的创建、对象之间耦合,对象的功能
创建型:
问题:对象创建时,会出现代码的冗余和不能重复利用代码,对象不能复用的问题。
目的:简化对象的创建过程,提高代码的复用和对已有对象的复用。
工厂方法模式(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)
参照:https://blog.youkuaiyun.com/itpinpai/article/details/51244491