设计模式:工厂方法模式
一.
在工厂方法模式种,不再由单一的工厂类生产产品,而是由工厂类的子类实现具体产品的创建。当增加一个产品时,只需要增加一个相应的工厂类的子类,实现生产这种产品,便可以解决简单工厂生产太多产品导致其内部代码臃肿的问题。
二.通用写法
抽象产品:
public interface IProduct { public void doService(); }
实现抽象产品:
public class ProductA implements IProduct { @Override public void doService() { System.out.println("ProductA"); } }
public class ProductB implements IProduct { @Override public void doService() { System.out.println("ProductB"); } }
抽象工厂:
public interface IFactory { public IProduct produce(); }
实现抽象工厂:
public class FactoryA implements IFactory { @Override public IProduct produce() { return new ProductA(); } }
public class FactoryB implements IFactory { @Override public IProduct produce() { return new ProductB(); } }
测试:
public class Test { public static void main(String[] args) { IFactory factory = new FactoryA(); IProduct product = factory.produce(); product.doService(); } }
3.uml类图
该模式的缺点:
1.类的个数过多,增加复杂度
2.抽象产品只能生产一种产品,可以用抽象工厂模式解决
3.增加系统的抽象性和理解难度。