抽象工厂设计模式

解决问题:创建一系列相关的对象,不需要指定具体类。

特点:抽象工厂定义了用于创建不同产品的接口, 但将实际的创建工作留给了具体工厂类。 每个工厂类型都对应一个特定的产品变体。

定义通用接口1&2...--->具体类实现具体方法---->定义实际创建对象的接口/抽象类--->子类继承决定创建哪个具体类

public abstract class AbstractProduct1{//通用产品接口1
    public abstract void method();
}

public class CreteProduct1 extends AbstractProduct1{//具体产品1
    public void method(){
        System.out.println("111111111111");
    }
}
public class  CreteProduct2 extends AbstractProduct1{//具体产品2
    public void method(){
        System.out.println("222222222222");
    }
}
public abstract class AbstractProdect2{//通用接口2
    public abstract void method();
}
public class CreteProduct3 extends AbstractProduct2{//具体产品3
    public void method(){
        System.out.println("333333333333");
    }
}
public class CreteProduct4 extends AbstractProduct2{//具体产品4
    public void method(){
        System.out.println("44444444444444");
    }
}

public abstract class AbstractFactory{//基础创建者
    public abstract AbstractProduct1 createProduct1();
    
    public abstract AbstractProduct2 createProduct2();
}

public  class CreteFactory1 extends AbstractFactory{//具体创建者1
    public  AbstractProduct1 createProduct1(){//通过继承基础创建者
        return new creteProduct1();//创建产品1
    }
    
    public  AbstractProduct2 createProduct2(){//创建产品2
        return new CreteProduct2();
    }
}

public  class CreteFactory2 extends AbstractFactory{//具体创建者2
    public  AbstractProduct1 createProduct1(){
        return new CreteProduct3();//创建产品3
    }
    
    public  AbstractProduct3 createProduct2(){//创建产品4
        return new CreteProduct4();
    }
}

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值