工厂模式

属于创建型设计模式,需要生成的对象叫做产品 ,生成对象的地方叫做工厂 。
也可以说是用于策略选择。不同的选择为产品。

工厂模式和策略模式有一定的类似。在实际应用中,我们常见单例模式和动态类型作为工厂生成产品的方法。

//以下使用了Singleton单态模式
        if (factory == null) {
            synchronized(initLock) {
                if (factory == null) {
                    ......
                    try {
                    //动态转载类
                        Class c = Class.forName(className);
                        factory = (ForumFactory)c.newInstance();
                    }catch (Exception e) {
                        return null;
                    }
                }
            }
        }

1.简单工厂模式

一个工厂类。一个产品接口。多个实例产品类实现共同的产品接口。
在工厂类中通过if else选择创建不同的产品。
缺点:工厂类集中了所有实例的创建逻辑,容易违反GRASPR的高内聚的责任分配原则

2.工厂方法模式

一个工厂接口,多个工厂实例类。一个产品接口,多个产品实例类。各个工厂类中,都对应一个获得产品接口的方法。用户决定使用哪个工厂。

比起简单工厂模式,将工厂类的职责进行了切分。这里可以和策略模式配合,通过策略决定采用那个具体工厂类。

3.抽象工厂模式

对工厂方法进行扩展。各个工厂类中,再增加一个获得接口B实例的方法。
这里写图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值