设计模式

三种工厂模式

  • 简单工厂

    一般基于static方式实现,扩展性不足

  • 工厂

    抽象了工厂和产品,但是一个工厂只能生产一种产品

  • 抽象工厂

    和普通工厂不同在于抽象工厂有多个生产方法,可以生产多种产品,实现更复杂的组合

建造者模式(Bulider模式)

和普通的new方法相比,在对象的创建上更为灵活,可以根据不同情况跳过步骤,组合不同的参数。

例如某个类有三个成员变量,根据需要的成员不同,提供了不同参数的方法重载。

使用的时候可能会出现根据不同条件提供不同的参数,在new方式下就是许多的new,且参数可能反复填写

1
2
3
4
5
6
7
if(条件1){
new Class(参数1,参数2)
}else if(条件2){
new Class(参数1,参数3)
}else if(条件3){
new Class(参数1,参数2,参数3)
}

建造者模式下

1
2
3
4
5
6
7
8
9
builder.参数1();
if(条件2){
builder.参数2();
}
if(条件3){
builder.参数3();
}
builder.build();

可以看出步骤的省略更为明显

命令模式

将原本具体的逻辑抽象成一个个命令,用命令对象隔离调用和实现。例如之前的博客解析yml 中就有Event类,可以看作是命令模式的一种实现


设计模式
http://blog.inkroom.cn/2021/06/13/V4XA6C.html
作者
inkbox
发布于
2021年6月13日
许可协议