在下列情况下,我们应当考虑使用抽象工厂模式:
1、一个系统应该不依赖于产品实例被创建,组成和表示的细节。这对于所有形态的工厂模式都是重要的
2、这个系统的产品有多于一个的产品簇;
3、同属于同一个产品族的产品是设计成在一起使用的。这一约束必须得在系统的设计中体现出来。
最后,不同的产品以一系列的接口的面貌出现,从而使系统不依赖于接口实现的细节。
(以下例子引用自网上资料)
1
public interface ComputerProducer
{}
2
public interface ComputerProducer
{} 2
public class PCProducer implements ComputerProducer
{
RAM createRAM()
{
return new PCRAM();
}
CPU createCPU()
{
return new PCCPU()
}
}
1
public MacProducer implements ComputerProducer
2

{
3
RAM createRAM()
4
{
5
return new MacRAM();
6
}
7
CPU createCPU()
8
{
9
return new MacCPU();
10
}
11
}
public MacProducer implements ComputerProducer2


{3
RAM createRAM()4

{5
return new MacRAM();6
}7
CPU createCPU()8

{9
return new MacCPU();10
}11
}1
public interface CPU
{}

public interface CPU
{}1
public class MacCPU implements CPU
{}

public class MacCPU implements CPU
{}1
public class PCCPU implements CPU
{}

public class PCCPU implements CPU
{}
本文探讨了在何种场景下适合采用抽象工厂模式,特别是当系统需要独立于产品的创建、组合及表示细节时。文中通过示例代码展示了如何为不同产品簇创建一致性的产品组,如PC和Mac计算机组件。
689

被折叠的 条评论
为什么被折叠?



