1.类图

2.类
Creator
package com.javapatterns.abstractfactory;
public interface Creator {
public ProductA factoryA();
public ProductB factoryB();
}
ProductA
package com.javapatterns.abstractfactory;
public interface ProductA {
}
ProductB
package com.javapatterns.abstractfactory;
public interface ProductB {
}
package com.javapatterns.abstractfactory;
public class ConcreteCreatorA implements Creator {
public ProductA factoryA() {
// TODO Auto-generated method stub
return new ConcreteProductA1();
}
public ProductB factoryB() {
// TODO Auto-generated method stub
return new ConcreteProductB1();
}
}
package com.javapatterns.abstractfactory;
public class ConcreteCreatorB implements Creator {
public ProductA factoryA() {
// TODO Auto-generated method stub
return new ConcreteProductA2();
}
public ProductB factoryB() {
// TODO Auto-generated method stub
return new ConcreteProductB2();
}
}
package com.javapatterns.abstractfactory;
public class ConcreteProductA1 implements ProductA{
}
package com.javapatterns.abstractfactory;
public class ConcreteProductA2 implements ProductA{
}
package com.javapatterns.abstractfactory;
public class ConcreteProductB1 implements ProductB{
}
package com.javapatterns.abstractfactory;
public class ConcreteProductB2 implements ProductB{
}
测试代码:
package com.javapatterns.abstractfactory;
import util.S;
public class test {
/**
* @param args
*/
public static void main(String[] args) {
ConcreteCreatorA ConcreteCreatorA = new ConcreteCreatorA();
ProductA productA1 = ConcreteCreatorA.factoryA();
ProductB productB1 = ConcreteCreatorA.factoryB();
ConcreteCreatorB ConcreteCreatorB = new ConcreteCreatorB();
ProductA productA2 = ConcreteCreatorB.factoryA();
ProductB productB2 = ConcreteCreatorB.factoryB();
S.s(productA1);
S.s(productA2);
S.s(productB1);
S.s(productB2);
}
}
z
本文深入解析抽象工厂模式中的关键组件:创建者接口和具体创建者类,以及它们创建的不同产品类实例。通过代码示例,详细阐述了如何实现和使用抽象工厂模式来解耦创建过程。
1027

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



