Java设计模式之《抽象工厂模式》详解 实现抽象工厂及应用场景

抽象工厂模式(Abstract Factory)

       抽象出来一个基础接口定义了产品功能(对应抽象产品角色),每个实现此接口的子类就是具体产品(对应具体产品角色),然后定义一个工厂接口(对应抽象工厂角色),实现了工厂接口的子类就是具体工厂(对应具体工厂角色),这时候,接口编程的优点就体现了,我们可以随时新增具体产品类(只需要实现产品接口),只需要同时新增一个工厂类,客户端就可以轻松调用生成新产品的代码。

  抽象工厂模式的灵活性就体现在这里,无需改动原有的代码,毕竟对于客户端来说,静态工厂模式在不改动StaticFactory类的代码时无法新增产品,如果采用了抽象工厂模式,就可以轻松的新增拓展类。

抽象工厂模式的用意为:给客户端提供一个统一接口,可以创建多个复杂产品族中的产品对象

抽象工厂角色: 这是抽象工厂模式的核心,它与应用程序无关。是具体工厂角色必须实现的接口或者必须继承的父类。在java中它由抽象类或者接口来实现。
具体工厂角色:它含有和具体业务逻辑有关的代码。由应用程序调用以创建对应的具体产品的对象。它由具体的类来实现。
抽象产品角色:它是具体产品继承的父类或者是实现的接口。在java中一般由抽象类或者接口来实现。
具体产品角色:具体工厂角色所创建的对象就是此角色的实例。在java中由具体的类来实现

interface food { }

class A implements food{}
class B implements food{}

interface AbstractFactory { Food produceFood();}

class FactoryA implements AbstractFactory {
    @Override
    public Food produceFood() {
        return new A();
    }
}

class FactoryB implements AbstractFactory {
    @Override
    public Food produceFood() {
        return new B();
    }
}

 客户端调用

public class Client{
    public Food getFood(String name){
        Food x= new FactoryA().produceFood();
        return x;
    }
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值