博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式_09_工厂方法模式
阅读量:4161 次
发布时间:2019-05-26

本文共 1189 字,大约阅读时间需要 3 分钟。

工厂方法模式

  • 定义:定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行
  • 类型:创建型
  • 适用场景:
    1. 创建对象需要大量重复的代码
    2. 客户端(应用层)不依赖于产品类实例如何被创建、实现等细节
    3. 一个类通过其子类来指定创建哪个对象
  • 优点:
    1. 用户只需要关心所需产品对应的工厂,无须关心创建细节
    2. 加入新产品符合开闭原则,提高可扩展性
  • 缺点:
    1. 类的个数容易过多,增加复杂度
    2. 增加了系统的抽象性和理解难度
public abstract class Video {
public abstract void produce();}
public class JavaVideo extends Video {
@Override public void produce() {
System.out.println("Java 课程"); }}
public class PythonVideo extends Video {
@Override public void produce() {
System.out.println("python 课程"); }}
public abstract class VideoFactory {
public abstract Video getVideo();}
public class JavaVideoFactory extends VideoFactory {
@Override public Video getVideo() {
return new JavaVideo(); }}
public class PythonVideoFactory extends VideoFactory {
@Override public Video getVideo() {
return new PythonVideo(); }}
public class Test {
public static void main(String[] args) {
new JavaVideoFactory().getVideo().produce(); System.out.println("----------------------"); new PythonVideoFactory().getVideo().produce(); }}

类图:

在这里插入图片描述

JDK中使用该模式示例:

在这里插入图片描述

ArrayList类图:
在这里插入图片描述
Slf4J
在这里插入图片描述
在这里插入图片描述

转载地址:http://mzixi.baihongyu.com/

你可能感兴趣的文章
学习技术的几个境界
查看>>
计算机世界:免费的代价
查看>>
方兴东:中国网站十年
查看>>
2010年微软和谷歌十大战场:从桌面到浏览器
查看>>
服务器虚拟化的未来之路
查看>>
写给我们这些浮躁的系统工程师
查看>>
和平分手?你根本不知道吴恩达在百度经历了什么
查看>>
业余研究:关于腾讯与他的QQ帝国
查看>>
马云校长湖畔大学第三期讲义完整版
查看>>
iPhone为什么比Android好
查看>>
小程序的今天就是微信指数的明天
查看>>
从互联网到人工智能,BAT这七年来到底做了什么
查看>>
2012年十大科技趋势:Siri将震惊世界
查看>>
2017(第十届)中国绿公司年会马云演讲
查看>>
李彦宏:睡不着觉不是因对手
查看>>
从手Q与微信之争,看腾讯内在的真实矛盾与战略
查看>>
移动互联网的七宗败案
查看>>
互联网十大失败案
查看>>
小米颓势已现,生死劫命悬手机
查看>>
三大隐忧 三星未来路在何方?
查看>>