抽象工厂模式:工厂将零件组合成一个产品
例如组装一台电脑主机,需要cpu,主板、内存等零部件
//零件类的抽象接口
public abstract class Item{
}
//cpu零部件
public abstract class CPU extends Item{
}
//主板零部件
public abstract class Board extends Item{
}
//内存条零部件
public abstract class Memory extends Item{
}
//零件工厂
public abstract class Factory extends Item{
CPU createCPU();
Board createBoard();
Memory createMemory();
}
//具体的amd CPU
public AMDCPU extends CPU {
}
//具体的华硕主板
public ASUSBoard extends Board{
}
//具体的三星内存
public SamsungMemory extends Memory{
}
//具体的工厂
public ComputerFactory extends Factory{
CPU createCPU(){
//创建具体品牌的cpu
}
Board createBoard(){
//创建具体品牌的主板
}
Memory createMemory(){
//创建具体品牌的内存条
}
}
抽象工厂易于增加新的工厂实现,零件种类,因为不需要改动原有的类结构。难以添加新的零件,因为要将原有类都添加新零件实现的方法。