总体来说23种设计模式分为三大类:CSDN连接
创建型模式(5种):工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式(7种):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式(11种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
工厂模式:提供一个抽象产品接口,具体产品实现这个接口,工厂类根据传入条件创建对应的具体产品
抽象工厂模式:一个抽象工厂接口,具体工厂实现抽象工厂接口,根据条件创建对应的工厂,然后每个工厂创建不同的产品
单例模式
建造者模式:复杂对象的构建需要一系列步骤,通过一系列链式调用将构建过程分离
Computer computer = new Computer.Builder().setCpu("cpu").setRam("ram").setHdd("hdd").build()
public class Computer {
private String cpu;
private String ram;
private String hdd;
public Computer(Builder builder) {
this.cpu = builder.cpu;
this.ram = builder.ram;
this.hdd = builder.hdd;
}
public static class Builder {
private String cpu;
private String ram;
private String hdd;
public Builder setCpu(String cpu) {
this.cpu = cpu;
return this;
}
public Builder setRam(String ram) {
this.ram = ram;
return this;
}
public Builder setHdd(String hdd) {
this.hdd = hdd;
return this;
}
public Computer build() {
return new Computer(this);
}
}
}
原型模式:是用于创建重复的对象,同时又能保证性能。
适配器模式:充当两个不兼容接口之间的桥梁,属于结构型设计模式。它通过一个中间件(适配器)将一个类的接口转换成客户期望的另一个接口,使原本不能一起工作的类能够协同工作。
桥接模式:是用于把抽象化与实现化解耦,使得二者可以独立变化。它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。实体类和实现类提供统一接口,在实体类接口内注入实现接口
状态模式:类的行为是基于它的状态改变的,不同状态下同样的动作产生不同的方法。将对象的状态和行为分离。有一个状态接口,定义各种当作,具体状态实现状态接口,实体类中依赖状态接口类型成员,通过set改变状态,实体类的动作中直接调用状态变量的动作。
策略模式:将变化的部分分离出来,已成员变量(接口类型)的形式组合进类中,并已set方法动态的改变(注入实际的类型)。成员变量不是继承而来的,而是由客户端自行决定如何注入)
访问者模式: