工厂模式

之前总结了简单工厂模式,然后我们发现,如果需要添加一个新的产品的话,就需要对工厂就行修改,添加相应的判断语句,从而来创建需要的类型的对象。这样就提高了耦合性,维护起来也稍麻烦些。那么本文就总结下能够解决这个问题的另一种设计模式——工厂模式。

工厂模式:factory pattern。GOF定义的二十三中设计模式之一,属于创建型模式。工厂模式和简单工厂模式最大的区别在于工厂模式添加了公共的抽象工厂以及抽象产品类。同时相应的子类工厂只能够创建相应的子类产品。一一对应。

优点:当需要扩展的时候只需要添加新的产品类和工厂类,并集成抽象产品和抽象工厂类。不需要对抽象工厂类进行修改,提高了代码的可维护性和可扩展性。更好的体现了开放-关闭原则。

缺点:

当产品过多时,类将会成倍的增加。增加了系统的复制度。

下面给出一个实例

image

代码如下:

class goods

{

String name;

public void show()

{

name="goods";

System.out.println(name);

}

}

class goodsA extends goods

{

String name;

public void show()

{

name="goodsA";

System.out.println(name);

}

}

class goodsB extends goods

{

String name;

public void show()

{

name="goodsB";

System.out.println(name);

}

}

class factory

{

public goods create()

{

return new goods();

}

}

class factoryA extends factory

{

public goods create()

{

return new goodsA();

}

}

class factoryB extends factory

{

public goods create()

{

return new goodsB();

}

}

public class test

{

public static void main(String args[])

{

factory f;

f=new factoryA();

goods g;

g=f.create();

g.show();

f=new factoryB();

g=f.create();

g.show();

}

}

结果如下:

image

联系我:renhanlinbsl@163.com

2016-8-2

20:28

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值