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