抽象工厂模式

当我们需要重复的创建对象的时候,通常会使用工厂模式来创建对象,这样来减轻工作量。但工厂模式的局限性在于只能够针对相同类型的产品。比如某工厂有一条生产果冻的生产线,这条生产线可以生产不同口味的果冻,这样可以很方便使用工厂模式来生成不同口味的果冻。但是如果新加入了一条生成汽水的生产线,那么整个系统就需要重新添加响应的汽水的类。这个时候就不能够很好的体现重用性了。如果我们将果冻和汽水的生产线都抽象出一个共同的父类,那么我们就可以通过使用里氏替换原则使用同样的方式来生成不同类型的产品了。如,工人加工->包装。替换了原来和具体的对象耦合的那部分内容,提高了系统的扩展性和可维护性。

接下来我们通过一个实例来说明

image

代码如下:

public class test
{
    public static void main(String args[])
    {
        {
            factory f=new fruitA();
            f.show();
            f=new drinkA();
            f.show();
        }
    }
}
class factory
{
    void show()
    {
        System.out.println("factory");
    }
}
class fruit extends factory
{
    void show()
    {
        System.out.println("fruit");
    }
}
class drink extends factory
{
    void show()
    {
        System.out.println("drink");
    }
}
class fruitA extends fruit
{
    void show()
    {
        System.out.println("fruitA");
    }
}
class fruitB extends fruit
{
    void show()
    {
        System.out.println("fruitB");
    }
}
class drinkA extends drink
{
    void show()
    {
        System.out.println("drinkA");
    }
}
class drinkB extends drink
{
    void show()
    {
        System.out.println("drinkB");
    }
}

结果如下

image

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值