工厂方法模式——创建型

工厂方法-定义与类型

定义:定义一个创建对象的接口

但让视线这个接口的类来决定实例化哪个类

工厂方法让类的实例化推迟到子类中进行

类型:创建型

创建对象需要大量重复的代码

客户端(应用)不依赖与产品实例如何被创建、实现等细节

一个类通过其子类来指定创建哪个对象

优点: 用户只需要关心所需产品对应的工厂,无须关心创建细节

          加入新产品符合开闭原则,提高可扩展性

缺点: 类的个数容易过多,增加复杂度

          增加了系统的抽象性和理解难度

特点:同一产品等级

区分:    产品等级与产品族的概念,

        美的空调、海尔空调,属于同一产品等级,都是空调

        美的空调、美的洗衣机,属于同一产品族,都是美的



JDK中的体现:

例子一:集合类java.util.Collection中定义的一个接口Iterator属于工厂方法可以让

(Collection属于抽象工厂)

        Iterator的一个实现类,ArrayList的实现:实现iterator方法返回了一个内部类Itr,该内部类Itr实现了Iterator接口

例子二:java.net.URLStreamHandlerFactory在JDK里是用来解决URL协议扩展使用的

public interface URLStreamHandlerFactory{

    URLStreamHandler createURLStreamHandler(String protocol);

}

例子三:org.slf4j.LoggerFactory


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。