抽象工厂模式java_java与设计模式-简单工厂-工厂方法-抽象工厂

简单工厂又叫静态工厂

b8e26a1ffb25ba78e9f32dd610b978c5.png

简单工厂模式的结构

简单工厂实现方式如上图所示。

具体实现方式就是根据工厂类传入的参数进行判断到底创建那种具体产品。

无论有多少种具体产品,以及这些产品之间具有怎样的结构关系,工厂类始终不会受到影响,但是增加新的产品必然会导致工厂类的修改,这样并不符合"开-放"原则。而且在工厂类中含有创建产品的判断逻辑,使得系统在将来扩展的时候很困难。增加新的产品都需要修改工厂创造产品的逻辑,这样做是很痛苦的。

工厂方法

工厂方法模式的用意是定义一个创建产品的工厂接口,将产品对象的创建推迟到工厂的子类中。

92e8cabb1f86d27825cd59d04110f4f4.png

工厂方法模式结构

上图为工厂方法模式结构其中:

抽象工厂(Creator)与业务无关,创建对象的工厂类需要实现这个抽象工厂。

具体工厂:是实际创建产品的工厂。

抽象产品:创建具体产品的超类型。

具体产品:需要创建的具体的产品。

如果系统需要增加一个产品就向系统中增加一个具体产品类和具体工厂类,完全不需要修改抽象工厂或者其他具体工厂。

工厂方法创建返回的类型还应该是抽象产品,而不是具体产品,这样才能保证产品的多态性。

抽象工厂

同一个具体工厂角色创建同一个产品族的产品。

抽象工厂模式类图如下所示

ae1c2670a010f5ece47c2130765237f8.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值