工厂模式

简单工厂模式、工厂方法模式、抽象工厂模式都是属于创建型设计模式。

1.       简单工厂模式

消费者任何时间需要某种产品,只需要向工厂请求即可。比较常用。用到面向对应的三大特点:封装、继承、多态。简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客服端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。

结构图:


2.       工厂方法模式

简单工厂的缺点:如果增加一个业务逻辑类,就要在工厂类里增加一个分支。工厂方法模式解决了这一个缺点,工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

但是,工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在的,也就是说,工厂方法把简单工厂的内部逻辑判断移到了客户端代码来进行。你想要加功能,本来是改工厂类的,而现在是修改客户端。


3.       抽象工厂模式

当工厂生产的产品只有一类时,用工厂方法就可以;当工厂生产的产品有多个时,就用抽象工厂模式。

抽象工厂模式:提供一个创建一系统相关或相互依赖对象的接口,而无需指定它们具体的类。它针对的是多个产品的等级结构。而工厂方法模式针对的是一个产品的等级结构。

 感谢《大话设计模式》这本书,上面对各种模式的介绍都很通俗易懂。

你可能感兴趣的:(java,工厂模式)