您的位置:首页 > 编程语言 > Java开发

Java设计模式-抽象工厂模式

2017-07-28 16:09 141 查看
1:使用场景

一个产品族有相同的约束时,可以使用抽象工厂模式

2:UML图



3:代码举例:

public  abstract class AbstractProductA {

public abstract void method();

}
public  abstract class AbstractProductB {

public abstract void method();

}


public class ConcreteProductA1 extends AbstractProductA{
@Override
public void method(){
System.out.println("我是具体产品A1");
}

}
public  class ConcreteProductA2 extends AbstractProductA{
@Override
public  void method(){
System.out.println("我是具体产品A2");
}

}


public class ConcreteProductB1 extends AbstractProductB{
@Override
public void method(){
System.out.println("我是具体产品B1");
}

}

public  class ConcreteProductB2 extends AbstractProductB{
@Override
public  void method(){
System.out.println("我是具体产品B2");
}

}


public  abstract class AbstractFactory {

public abstract AbstractProductA createProductA();

public abstract AbstractProductB createProductB();

}


public   class ConcreteFactory1 extends AbstractFactory{

public  AbstractProductA createProductA(){
return new ConcreteProductA1();
}

public  AbstractProductB createProductB(){
return new ConcreteProductB1();
}

}

public   class ConcreteFactory2 extends AbstractFactory{

public  AbstractProductA createProductA(){
return new ConcreteProductA2();
}

public  AbstractProductB createProductB(){
return new ConcreteProductB2();
}

}

public  class Client {
public  static void main(String[] args){
AbstractFactory factory1 =new ConcreteFactory1();
AbstractProductA productA1=factory1.createProductA();
AbstractProductB productB1=factory1.createProductB();

productA1.method();
productB1.method();

AbstractFactory factory2 =new ConcreteFactory2();
AbstractProductA productA2=factory2.createProductA();
AbstractProductB productB2=factory2.createProductB();

productA2.method();
productB2.method();

}

}


4: Android中的抽象工厂模式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java