抽象工厂模式的作用或者优点
抽象工厂模式是为了克服工厂模式的缺点,而将工厂模式中仅能生产一种产品的工厂类改写为生产一系列产品的工厂类。
UML图
步骤
1.创建抽象产品类或者接口,定义公共的抽象方法
2.创建抽象工厂类或者接口,定义公共的抽象方法
3.继承抽象产品类或者实现接口创建具体产品类,实现抽象方法
4.继承抽象产品类或者实现接口创建具体工厂类,实现抽象方法
5.客户类通过不同工厂类的静态方法,从而获得不同的具体产品实例
代码例子
abstract class ProductA{
public abstract void getName();
}
abstract class ProductB{
public abstract void getName();
}
class ProductAForMan extends ProductA{
@Override
public void getName() {
System.out.println("产品AForMan");
}
}
class ProductAForWomen extends ProductA{
@Override
public void getName() {
System.out.println("产品AForWomen");
}
}
class ProductBForMan extends ProductB{
@Override
public void getName() {
System.out.println("产品BForMan");
}
}
class ProductBForWomen extends ProductB{
@Override
public void getName() {
System.out.println("产品BForWomen");
}
}
abstract class Factory{
public abstract ProductA getProductA();
public abstract ProductB getProductB();
}
class FactoryForMan extends Factory{
@Override
public ProductA getProductA() {
return new ProductAForMan();
}
public ProductB getProductB() {
return new ProductAFroMan();
}
}
class FactoryForWoman extends Factory{
@Override
public ProductA getProductA() {
return new ProductAForWoman();
}
public ProductB getProductB() {
return new ProductBForWoman();
}
}