abstract-factory 抽像工厂模式

源码学习 java-design-patterns

抽象工厂模式是普通工厂模式的扩展,普通工厂模式只生产一种产品,而抽象工厂模式支持多种具有相关联系的产品线,如下图Orc (兽人)和Elf (精灵) 都具有相同组成,由King ,Castle,Army组成.




这张图很明确的表示了各个类和接口之间的关系,首先,有三个基本抽象接口King,Castle,Army.定义了王国的组成的基础,然后KingdomFactory抽象工厂定义了创造王国的方法,具体工厂类通过继承这个接口来创造王国,其中的具体逻辑代码在具体产品类中实现

在什么时候使用抽象工厂模式:

你系统里的产品需要被独立的创造,组装和表现的时候;

你系统里的需要配置许多类型的产品的产品的时候;

属于同一个家族的产品被设计在一起使用,并且你需要去约束他的时候;

你想要把一些产品做成一个公共库类,并且只想对外提供接口,而不提供具体他们的具体实现的时候;

我只是尝试翻译,还是看英文原版比较清晰哭


  • Applicability: Use the Abstract Factory pattern when

    • a system should be independent of how its products are created, composed and represented
    • a system should be configured with one of multiple families of products
    • a family of related product objects is designed to be used together, and you need to enforce this constraint
    • you want to provide a class library of products, and you want to reveal just their interfaces, not their implementations




参考github 地址 https://github.com/keygod/java-design-patterns/tree/master/abstract-factory/src/main/java/com/iluwatar/abstractfactory

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值