抽象工厂的概念实现事实上就是接口和抽象类,用过Java、C++的人都了解这个概念,这里不多说了。
为什么要用这个模式
可以将具体的产品抽象化,使得具体的业务逻辑和产品概念分离。比如说写一个水果应用模块吧(有多种水果,比如[苹果]、[香蕉]、[桔子]),所有的水果都有2个方法,A()和B(),[苹果]、[香蕉]、[桔子]的这2个方法实现是不同的,甚至有可能是不同的程序员写的,对外部应用来讲,只需要传入一个水果对象并调用A和B两个方法,并不关心我传入的对象是什么水果,这种情况下,使用抽象工厂模式就可以对代码进行解耦,即定义一个接口或者抽象类[水果],[苹果]、[香蕉]、[桔子]类都实现这个接口或者继承这个抽象类。外部应用调用时只需要传入[水果]并调用方法即可,以后再有其他水果,直接添加新的类就可以了。