设计模式
设计模式理解整理
RossiLover
Java程序员
编程是艺术,从不停止追求艺术的脚步
展开
-
设计模式分类及遵循原则
设计模式的分类及其遵循的原则原创 2024-08-29 16:15:23 · 105 阅读 · 0 评论 -
行为模式-策略模式
策略模式是一种行为设计模式, 它能让你定义一系列算法, 并将每种算法分别放入独立的类中, 以使算法的对象能够相互替换。该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。- 抽象策略(Strategy)类:定义了一个公共接口,各种不同的算法以不同的方式实现这个接口,环境角色使用这个接口调用不同的算法,一般使用接口或抽象类实现。- 具体策略(Concrete Strategy)类:实现了抽象策略定义的接口,提供具体的算法实现。原创 2024-08-30 10:04:40 · 230 阅读 · 0 评论 -
行为模式-访问者模式
访问者模式(Visitor Pattern)是一种行为型设计模式,它用于在不改变元素类的前提下,为元素的不同操作(访问)提供不同的处理方式。- 具体元素(Concrete Element): 具体元素是元素的实现类,它实现了 accept 方法,并将自身传递给访问者对象,以便访问者可以根据元素的类型执行相应的操作。- 具体访问者(Concrete Visitor): 具体访问者是访问者的实现类,它实现了访问者接口中定义的访问操作,以定义不同类型元素的处理方式。访问者将访问对象结构中的元素,执行相应的操作。原创 2024-08-30 10:03:38 · 259 阅读 · 0 评论 -
行为模式-模板方法模式
(1) AbstractClass(抽象类):在抽象类中定义了一系列基本操作(PrimitiveOperations),这些基本操作可以是具体的,也可以是抽象的,每一个基本操作对应算法的一个步骤,在其子类中可以重定义或实现这些步骤。同时,在抽象类中实现了一个模板方法(Template Method),用于定义一个算法的框架,模板方法不仅可以调用在抽象类中实现的基本方法,也可以调用在抽象类的子类中实现的基本方法,还可以调用其他对象中的方法。原创 2024-08-30 10:02:23 · 31 阅读 · 0 评论 -
行为模式-状态模式
Context(环境/上下文类):维护一个具体状态对象的引用,定义与状态无关的接口,并委托给当前状态对象处理与状态相关的操作。这种改变通常是通过环境对象调用状态对象的方法来实现的,该方法会返回下一个状态的实例,然后环境对象更新其状态引用。- ConcreteState(具体状态类):实现状态接口,每一个具体状态类对应于系统中的一个具体状态,它封装了该状态下对象的行为。- State(状态接口):定义了一个所有具体状态必须实现的接口,声明了处理状态相关行为的方法。原创 2024-08-30 09:59:23 · 186 阅读 · 0 评论 -
行为模式-观察者模式
观察者模式是一种行为设计模式, 允许你定义一种订阅机制, 可在对象事件发生时通知多个 “观察” 该对象的其他对象。2. Subscriber(订阅者):它是观察主题的对象,当主题状态发生改变时会接收到通知并进行相应的处理。1. Publisher(发布者):它是被观察的对象,当其状态发生改变时会通知所有的观察者。原创 2024-08-30 09:58:10 · 110 阅读 · 0 评论 -
行为模式-备忘录模式
1.发起人(Originator):记录当前时刻的内部状态信息,提供创建备忘录和恢复备忘2.录数据的功能,实现其他业务功能,它可以访问备忘录里的所有信息。备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。3.管理者(Caretaker):对备忘录进行管理,提供保存与获取备忘录的功能,但其不能对备忘录的内容进行访问与修改。备忘录(Memento):负责存储发起人的内部状态,在需要的时候提供这些内部状态给发起人。原创 2024-08-30 09:57:15 · 283 阅读 · 0 评论 -
行为模式-中介者模式
中介者模式通过引入一个中介者对象,使各个对象不再直接相互引用,而是通过中介者对象进行通信。2.具体中介者(ConcreteMediator):实现了抽象中介者的接口,管理所有相关的对象之间的通信和协调。4.具体对象(ConcreteColleague):实现了抽象对象的接口,通过中介者来完成对象之间的通信和协调。1.抽象中介者(Mediator):声明所有具体中介者的公共接口,主要用于对象之间的通信和协调。3.抽象对象(Colleague):声明所有具体对象的公共接口,该接口用于与中介者进行通信。原创 2024-08-30 09:56:15 · 155 阅读 · 0 评论 -
行为模式-迭代器模式
ConcreteAggregate(具体聚合类):实现了在抽象聚合类中声明的createIterator()方法,该方法返回一个与该具体聚合类对应的具体迭代器ConcreteIterator实例。- ConcreteIterator(具体迭代器):实现了抽象迭代器接口,完成对聚合对象的遍历,在具体迭代器中通过游标来记录在聚合对象中所处的当前位置,游标通常是一个表示位置的非负整数。迭代器模式:用一致的方法遍历元素集的元素,不需要知道元素集对象的底层表示,即不需要暴露元素集对象内部的结构。原创 2024-08-30 09:55:10 · 261 阅读 · 0 评论 -
行为型模式-命令模式
命令模式是一种行为设计模式, 它可将请求转换为一个包含与请求相关的所有信息的独立对象。该转换让你能根据不同的请求将方法参数化、 延迟请求执行或将其放入队列中, 且能实现可撤销操作。ConcreteCommand具体命令:它拥有接收者对象(可能多个),并通过调用接收者的功能来完成命令要执行的操作。Command抽象命令接口:所有要执行的命令会在这里声明。Receiver接收者:命令传到这里来会被执行。Invoker调用者:接受命令,并执行命令。原创 2024-08-30 09:52:59 · 142 阅读 · 0 评论 -
行为模式-责任链模式
责任链模式, 允许你将请求沿着处理者链进行发送。收到请求后, 每个处理者均可对请求进行处理, 或将其传递给链上的下个处理者。这种模式的核心在于避免请求发送者与接收者之间的紧密耦合,让多个对象都有可能接收请求,并将这些对象连接成一条链,沿着这条链传递请求,直到有对象处理它为止。原创 2024-08-29 16:56:44 · 59 阅读 · 0 评论 -
结构型模式-代理模式
代理模式原创 2024-08-29 16:51:22 · 124 阅读 · 0 评论 -
结构型模式-享元模式
享元模式原创 2024-08-29 16:50:08 · 134 阅读 · 0 评论 -
结构型模式-外观模式
外观模式原创 2024-08-29 16:47:36 · 45 阅读 · 0 评论 -
结构型模式-装饰器模式
装饰器模式原创 2024-08-29 16:46:32 · 217 阅读 · 0 评论 -
结构型模式-组合模式
组合模式原创 2024-08-29 16:45:40 · 97 阅读 · 0 评论 -
结构型模式-桥接模式
桥接模式原创 2024-08-29 16:44:06 · 224 阅读 · 0 评论 -
结构型模式-适配器模式
适配器模式原创 2024-08-29 16:42:00 · 56 阅读 · 0 评论 -
创建型模式-单例模式
单例模式原创 2024-08-29 16:34:34 · 137 阅读 · 0 评论 -
创建型模式-原型(克隆)模式
原型(克隆)模式原创 2024-08-29 16:33:04 · 242 阅读 · 0 评论 -
创建型模式-生成器模式
生成器模式原创 2024-08-29 16:28:24 · 95 阅读 · 0 评论 -
创建型模式-抽象工厂模式
抽象工厂模式原创 2024-08-29 16:23:24 · 64 阅读 · 0 评论 -
创建型模式-工厂方法模式
工厂方法模式原创 2024-08-29 16:19:17 · 45 阅读 · 0 评论