zhangyayun0 2019-06-26
在聊概念之前我先问问大家:什么是工厂?
这个很简单,工厂就是生产物品的地方,比如,鞋子工厂生产鞋子,工厂衣服生产衣服,汽车工厂生产汽车。
我们都是知道,Java是一种面向对象的语言,那么对象是不是也会有对象工厂呢?
答案是肯定的,而工厂模式就是实现了Java对象工厂的一种创建性设计模式。
概念:工厂模式(Factory Pattern)就是一个创建对象的接口。不同的子类可以创建不同的对象。知道了什么是工厂模式,那我们不禁要问了使用工厂模式和使用new关键字创建对象有什么区别?我们为什么要费力去为创建对象再专门写一个对象工厂呢?
我理解的工厂模式主要适用于以下几种情况:
这里我只是说一下我自己的理解,如果大家对工厂模式需要更加深入的了解可以参考菜鸟教程,其中写得更加详细。
既然聊到这里,我们就不得不提一下工厂模式的加强版——抽象工厂模式(Abstract Factory Pattern),其实,在我的理解中抽象工厂就是从其他工厂获取原料的工厂。
如果我们需要一辆汽车,我们不需要自己造,可以直接从汽车工厂里拿,这就是工厂模式,但是汽车工厂也不是从零生产的,汽车工厂需要从发动机工厂买发动机,轮胎工厂买轮胎,对不对,汽车工厂就相当于那个抽象工厂。
相对于工厂模式,抽象工厂模式生产的对象更加具体,也更加丰富,但相对编码也更加复杂。具体的抽象工厂模式的实现大家可以参考菜鸟教程。
知道了工厂模式和抽象工厂模式的区别,请大家使用的时候应该根据具体的情况进行选择。