zoukankan      html  css  js  c++  java
  • 工厂方法模式小记【原创】

          女娲补天的故事大家都听说过吧,今天不说这个,说女娲创造人的故事,可不是“造人”的工作,这个词被现代人滥用了。这个故事是说,女娲在补了天后,下到凡间一看,哇塞,风景太优美了,天空是湛蓝的,水是清澈的,空气是清新的,太美丽了,然后就待时间长了就有点寂寞了,没有动物,这些看的到都是静态的东西呀,怎么办?
    别忘了是神仙呀,没有办不到的事情,于是女娲就架起了八卦炉(技术术语:建立工厂)开始创建人,具体过程是这样的:先是泥巴捏,然后放八卦炉里烤,再扔到地上成长,但是意外总是会产生的:
          第一次烤泥人,兹兹兹兹~~,感觉应该熟了,往地上一扔,biu~,一个白人诞生了,没烤熟!
          第二次烤泥人,兹兹兹兹兹兹兹兹~~,上次都没烤熟,这次多烤会儿,往地上一扔,嘿,熟过头了,黑人哪!
          第三次烤泥人,兹~兹~兹~,一边烤一边看着,嘿,正正好,Perfect!优品,黄色人类!【备注:RB人不属此列】

    定义了一个产品类(Human)和其具体实现类,一个抽象工厂类(AbstractHumanFactory)及其具体工厂实现类。工厂方法模式最大的特点就是定义了一个用于创建对象的接口(AbstractHumanFactory),让子类决定去实例化哪个类(BlackHuman、YellowHuman、WhiteHuman,这里少画了三条由HumanFactory指向三个具体产品类的虚线,表示依赖)。

          工厂方法有个通用的类图:

    对于此图有一个相应的通用代码(java代码):

    1:抽象产品类:

    2:具体产品类:

    3:抽象工厂类:

    4:具体工厂类:

    5:客户端:

    一句话概括工厂方法模式:工厂子类对创建子类的实现。

  • 相关阅读:
    vue中$router和$route的区别
    移动端rem自适应
    如何用Mac自带的QuickTime Player录制视频并制作GIF动图
    vue页面刷新重定向
    JavaScript Functional Programming:声明式与命令式
    配置一个可以使用Vue的History模式的后端服务
    vue使用jsx语法开发
    vue多页面项目配置
    JavaScript的本来面貌之默认结构
    JavaScript的本来面貌之默认值
  • 原文地址:https://www.cnblogs.com/winkey4986/p/2419116.html
Copyright © 2011-2022 走看看