JAVA--抽象工厂模式--设计模式二

来源:互联网 发布:linux acpi 编辑:程序博客网 时间:2024/06/05 17:28


1,抽象工厂的实例和好处:

           (1)抽象工厂模式又名工具箱,其意图是允许创建一族相关或相互依赖的对象
           (2)抽象工厂模式是工厂方法模式的进一步抽象,是为创建一组相关的或相互依赖的对象提供一个接口,无需指定他们的具体类。 
         (3)抽象工厂模式相比于工厂方法模式来说,每个具体工厂可以生产一族产品(即多种产品);而工厂方法模式是具体工厂生产对应的具体产品,只能生产一种产品,
当生产族中只有一种产品时抽象工厂退化成工厂方法模式。



public class Main { public static void main(String[] args) {  } interface AbstractFactory{  public ProductA factoryA();  public ProductB factoryB(); }  public interface ProductA{  public void method1();  public void method2(); }      interface ProductB{ public void method1(); public void method2(); }}class ConcreateFactory1 implements AbstractFactory{ public ProductA factoryA() {  return new ConcreateProductA1(); } public ProductB factoryB() {  return new ConcreateProductB1(); } }class ConcreateFactory2 implements AbstractFactory{ public ProductA factoryA() {  return new ConcreateProductA2(); } public ProductB factoryB() {  // TODO Auto-generated method stub  return new ConcreateProductB2(); } }class ConcreateProductA1 implements ProductA{ public void method1() {  System.out.println("等级为1的产品A的method1");  } public void method2() {  System.out.println("等级为1的产品A的method2");  } }class ConcreateProductA2 implements ProductA{ public void method1() {  System.out.println("等级为2的产品A的method1");  } public void method2() {  System.out.println("等级为2的产品A的method2");  } }class ConcreateProductB1 implements ProductB{ public void method1() {  System.out.println("等级为1的产品B的method1");  } public void method2() {  System.out.println("等级为1的产品B的method2");  } }class ConcreateProductB2 implements ProductB{ public void method1() {  System.out.println("等级为2的产品B的method1");  } public void method2() {  System.out.println("等级为2的产品B的method2");  } }




1 0
原创粉丝点击