产品族:抽象工厂模式中的产品族官方定义是指由同一个工厂生产的,位于不同产品等级结构中的一组产品。 譬如上面的Android位于技能等级结构中,Android书位于工具书等级结构中,Android技能和Android书是位于不同产品结构的一组产品,但是任何一个程序猿都需要具备技能和工具书, 譬如一个Android程序猿需要有Android技能及Android书,所以这个Android程序猿就是一个产品族。
概念: 提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,它是一种对象创建型模式。
重点: 抽象工厂模式结构重要核心模块:
抽象工厂:
声明一组用于创建一族产品的方法,每一个方法对应一种产品。
具体工厂:
实现了在抽象工厂中声明的创建产品的方法,生成一组具体产品,这些产品构成了一个产品族,每一个产品都位于某个产品等级结构中。
抽象产品:
它为每种产品声明接口,在抽象产品中声明了产品所具有的业务方法。
具体产品:
定义具体工厂生产的具体产品对象,实现抽象产品接口中声明的业务方法。
使用场景:
当需要创建的对象是一系列相互关联或相互依赖的产品族时,便可以使用抽象工厂模式。 大白话意思就是一个继承体系中,如果存在着多个等级结构(即存在着多个抽象类,像上面的技能与工具书), 并且分属各个等级结构中的实现类之间存在着一定的关联或者约束,就可以使用抽象工厂模式。当然了, 同样的道理就是如果各个等级结构中的实现类之间不存在关联或约束,则使用多个独立的工厂来对产品进行创建。
程序实例
如下实例就是上图何如上文字解释的实现代码,具体不再解释:
package yanbober.github.io;
/*技能等级结构部分*/
interface ICode {
void coding();
}
class CodeImplAndroid implements ICode {










