设计模式之三种工厂模式-----简洁易懂版

抽象工厂:

  • 抽象产品类Product负责定义产品的共性,实现对事物最抽象的定义
  • 抽象创建类Creator即为抽象工厂
  • 具体创建类ConcreteCreator为具体的实际工厂

一个通用的模板代码如下。

product:
 

public abstract class Product {
    //产品类的公共方法
    public void method1(){
        //业务处理逻辑
    }
    //抽象方法
    public abstract void method2();
}

ConcreteProduct1:
 

public class ConcreteProduct1 extends Product{
    public void method2() {
        //业务处理逻辑
    }
}

ConcreteProduct2:
 

public class ConcreteProduct2 extends Product{
    public void method2() {
        //业务处理逻辑
    }
}

Creator:

public abstract class Creator {
    /*
    * 创建一个产品对象,输入参数自定义
    * */
    public abstract <T extends Product> T createProduct(Class<T> c);
}

ConcreteCreator:

public class ConcreteCreator extends Creator{
    public <T extends Product> T createProduct(Class<T> c) {
        Product product = null;
        try{
            product = (Product) Class.forName(c.getName()).newInstance();
        }catch (Exception e){
            //异常处理
        }
        return (T)product;
    }
}

Client :

public class Client {
    public static void main(String[] args) {
        Creator creator = new ConcreteCreator();
        Product product = creator.createProduct(ConcreteProduct1.class);
        /*
        * 其他业务代码
        * */
    }
}

重点:
1. 简单工厂,是对产品product提供了一个抽象工具类,替代了工厂Creator和工厂实现ConcreteCreator的定义。(其余的结构和普通工厂代码一致)

 

2. 抽象工厂,是在Creator工厂模式下,提供了生产多种类型的产品。(其余的结构和普通工厂模式代码一致)
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程治铭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值