Loading

设计模式:工厂方法模式

一.

  在工厂方法模式种,不再由单一的工厂类生产产品,而是由工厂类的子类实现具体产品的创建。当增加一个产品时,只需要增加一个相应的工厂类的子类,实现生产这种产品,便可以解决简单工厂生产太多产品导致其内部代码臃肿的问题。

二.通用写法

抽象产品:

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.增加系统的抽象性和理解难度。

 

posted @ 2020-08-29 09:56  秋风飒飒吹  阅读(156)  评论(0编辑  收藏  举报