责任链模式 责任链模式是定义n个请求处理器,连成一条链,请求可以第一个传递到最后一个,可以被任意一个处理器处理 类图 示例public class Request{ } public class abstract Handler { 2023-07-23 模板模式 模板方法模式是定义好算法的步骤,其中一些步骤由子类去实现 类图 示例public class abstract Cook { // 做饭的步骤1,希望子类提供 public abstract void step1(); 2023-07-23 命令模式 命令模式将请求封装成对象,将请求调用者和接受者解耦 类图命令模式要素: Invoker:发起命令请求的人 Command:封装命令 Receiver:真正执行命令的人 为什么客户端不直接调用Receiver,而需要Inovker呢 2023-07-23 观察者模式 观察者模式定义了多个观察者,监听某个对象的状态,当状态改变,观察者将收到通知 类图观察者模式其实就是“发布-订阅”模式,当subject状态更新,就调用nofityObservers()方法,订阅者将收到update()回调通知 示例 2023-07-23 策略模式 策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户 类图 示例定义策略接口 public interface Strategy { void doSomething(); } 多 2023-07-23 建造者模式 建造者模式是将对象复杂的构建过程封装起来,客户端通过选择不同的构建者来构想自己想要的对象 类图 示例我们来写一个动物的构建者 public abstract class AbstractAnimal { // 构造头 v 2023-07-23 原型模式 原型模式就是复制一个已有的对象,而客户端不需要知道具体是如何复制的 类图 示例java中已经有现成的clone接口 @Data public class Thing implements Cloneable { pri 2023-07-22 抽象工厂 抽象工厂是基于工厂方法模式,支持创建多种n种对象 类图回顾一下工厂方法,定义了一种要创建的目标Thing,而抽象工厂,则是定义了n种要创建的目标,例如Thing1,Thing2,我们可以认为n个工厂方法组合起来就是抽象工厂。 工厂方法和 2023-07-22 工厂方法 工厂方法模式是定义一个创建对象的接口,由它的子类来创建对象,每一个子类提供一种创建实现 类图 工厂方法比起简单工厂来说: 定义了一个工厂接口SimpleFactory 具体的工厂类实现了SimpleFactory接口 每个工厂类分别负 2023-07-22 简单工厂 简单工厂将复杂的创建过程集中到一个简单工厂类中 类图 示例普通写法: public interface Thing {} public class ConcreteThingA implements Thing {} public 2023-07-22 单例模式 单例模式确保一个类只有一个实例,并提供一个全局访问点 类图 线程安全问题有线程安全问题的单例模式: public class Singleton { private static Singleton instance; 2023-07-22