讲一讲抽象工厂模式

1. 新建产品族接口

//我这里可以理解为生产一个产品需要两个步骤

//步骤1
public interface IProduct1 {
    void product1();
}

//步骤2
public interface IProduct2 {
    void product2();
}

2.新建工厂接口

//一个工厂生产一个产品都需要这两个步骤
public interface IFactory {
    IProduct1 createProduct1();
    IProduct2 createProduct2();
}

3.新建各个产品的产品族实现类

//生产产品A的步骤1
public class ProductA1 implements  IProduct1 {
    public void product1() {
        System.out.println("create product A 1");
    }
}

//生产产品A的步骤2
public class ProductA2 implements  IProduct2 {
    public void product2() {
        System.out.println("create Product A 2");
    }
}

//生产产品B的步骤1
public class ProductB1 implements  IProduct1 {
    public void product1() {
        System.out.println("create Pruduct B 1");
    }
}
//生产产品B的步骤2
public class ProductB2 implements  IProduct2 {
    public void product2() {
        System.out.println(" create product B 2");
    }
}

3.新建各个产品对应的工厂

//生产产品A的工厂
public class ProductAFactory implements  IFactory {
    public IProduct1 createProduct1() {
        return new ProductA1();
    }

    public IProduct2 createProduct2() {
        return new ProductA2();
    }
}



//生产产品B的工厂
public class ProductBFactory implements  IFactory {
    public IProduct1 createProduct1() {
        return new ProductB1();
    }

    public IProduct2 createProduct2() {
        return new ProductB2();
    }
}

4.最后就可以根据需要创建对应的工厂来生产对应的产品的产品族(这里为生产所需的一系列步骤)

public class AbstractFactoryTest {

    public static void main(String[] args) {

        ProductAFactory factory=new ProductAFactory();
        factory.createProduct1().product1();
        factory.createProduct2().product2();


    }

}

结果截图

 

手绘对象关系图

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值