多例模式 - Multiton Pattern定义多例是单例的一种延伸。是指一个类有多个相同实例,而且该实例都是该类本身。设计的原则和思想解耦了对象的创建和使用。不变部分是使用,变化部分是创建。核心思想是限制对象的数量,并且对对象进行重复使用。一句话概括设计模式一个类有多种形态,并且每一种形态是一个单例。结构中包含的角色Multiton 多例对象最小可表达代 ......
381
0
0
2022-08-07
状态模式 - State Pattern定义允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。设计的原则和思想解耦的是对象和状态。不变部分是对象,变化部分是状态。核心思想是不同状态下做的事情也不同。一句话概括设计模式对象的状态改变,行为也要随之改变。结构中包含的角色Context(环境类)State(抽象状态类)ConcreteStat ......
402
0
0
2022-08-04
中介者模式 - Mediator Pattern定义用一个中介对象(中介者)来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。设计的原则和思想解耦的各个对象之间的依赖。不变部分是各个对象之间的依赖关系,变化部分是各个对象所依赖的对象(中介者模式用中介者去替换之前的依赖关系)。核心思想是将网状结构的 ......
355
0
0
2022-08-04
责任链模式(Chain of Responsibility Pattern)定义避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。设计的原则和思想解耦的是请求发送对象(触发业务的对象)和请求处理对象(处理业务的对象)。不变部分是请求处理对象,变化部分是请求处理对象之间的关系。核 ......
389
0
0
2022-08-04
模板方法模式 - Template Pattern定义定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。设计的原则和思想解耦的是 模板方法(算法)和方法(算法)步骤。不变部分是方法步骤,变化部分是模板方法。核心思想是同一个步骤,不同的事情。一句话概括设计模式父类控制流程,子类负责具 ......
402
0
0
2022-08-04
命令模式 - Command Pattern定义将一个请求封装为一个对象,从而让我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。设计的原则和思想解耦的是行为请求(发起)者和行为实现(执行)者。不变部分是行为实现者,变化部分是行为请求者。核心思想是将函数封装成命令对象。一句话概括设计模式调用者通过命令类让接受者执行指令。结 ......
348
0
0
2022-08-04
解释器模式 - Interpreter Pattern定义定义一个语言的文法,并且建立一个解释器来解释该语言中的句子。设计的原则和思想解耦的是需要解释的内容和解释文法的方式。不变部分是解释文法的方式,变化部分是需要解释的内容。核心思想是将语法解析拆分到最小单元,然后按照某种文法规则重新组合。一句话概括设计模式用一种类似抽象语法树的表达式去解释一种语言。终结符 ......
384
0
0
2022-08-04
观察者模式(Observer Pattern)定义在对象之间定义一种一对多依赖关系,当一个对象状态改变的时候,所有依赖的对象都会得到通知并被自动更新。设计的原则和思想解耦观察者和被观察者。不变部分是观察者和被观察者的关联,变化部分是观察者和被观察者。核心思想是对象之间一对多的关联关系。一句话概括设计模式被观察者的操作,观察者都能监控。结构中包含的角色Subj ......
357
0
0
2022-08-04
访问者模式 - Visitor Pattern定义提供一个作用于某对象结构中的各元素的操作表示,它使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作。设计的原则和思想对象(稳定的数据结构)与操作(易变的操作)解耦不变部分是对象的数据结构,变化部分是操作。核心思想是同样一件事,不同的人有不同的做法。一句话概括设计模式通过访问者去操作对象的行为。结构 ......
351
0
0
2022-08-04
迭代器模式 - Iterator Pattern定义提供一种方法来访问聚合对象,而不用暴露这个对象的内部表示。设计的原则和思想解耦使用者和集合类对象。不变部分是迭代器,变化部分是集合对象。核心思想是让对象能像数组一样能遍历。一句话概括设计模式遍历对象。结构中包含的角色Iterator(抽象迭代器)ConcreteIterator(具体迭代器)Iterator ......
376
0
0
2022-08-04
策略模式(Strategy Pattern)定义定义一系列算法类,将每一个算法封装起来,并让它们可以相互替换,策略模式让算法独立于使用它的客户而变化,也称为政策模式(Policy)。设计的原则和思想解耦策略的定义、创建和使用这三部分。不变部分是算法本身,变化的部分是算法的调用。核心思想是动态确定算法(变化)。一句话概括设计模式相同的接口,相同的方法,不同的策 ......
503
0
0
2022-08-04
组合模式 - Composite Pattern定义组合多个对象形成树形结构以表示具有“整体—部分”关系的层次结构。组合模式对单个对象(即叶子对象)和组合对象(即容器对象)的使用具有一致性,组合模式又可以称为“整体—部分”(Part-Whole)模式。设计的原则和思想解耦的是客户程序与复杂元素内部结构。不变部分是元素之间的层次结构,变化部分是元素。核心思想是 ......
426
0
0
2022-08-01
装饰模式 - Decorator Pattern定义动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类实现更为灵活。这样可以给某个对象而不是整个类添加一些功能。设计的原则和思想解耦的是装饰者和被装饰者。不变部分是被装饰者,变化部分是装饰者。核心思想是对对象自身功能进行增强。一句话概括设计模式通过组合的方式,增强对象自身的功能,并且支持 ......
333
0
0
2022-08-01
享元模式 - Flyweight Pattern定义运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。享元概念内部状态 在享元对象中可共享的状态叫内部状态。外部状态 在享元对象中不可共享的状态叫外部状态。享元池 享元工厂里面存在享元对象的变量叫做享元池。设计的原则和思 ......
368
0
0
2022-08-01
外观模式(Facade Pattern)定义为子系统中的一组接口提供一个统一的入口。外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。设计的原则和思想解耦的是客户端和子系统。不变部分是子系统,变化部分是多个子系统之间的依赖性。核心思想是封装交互,简化调用。一句话概括设计模式为多个业务类的调用提供了一个统一的入口,简化了类与类之间的交互。结构中包 ......
319
0
0
2022-08-01