• 设计模式之工厂模式


      假如你很有钱,在你没有应用工厂模式之前,你的生活方式是这样的:

      你要出去,你需要先自己找穿的T恤,裤子、鞋子等。这样肯定很麻烦,什么事都需要亲力亲为。

      如果应用了简单工厂模式,就相当于你找了个管家,不过这个管家比较死板,技能比较有限,你告诉他你要什么他就给你什么,有可能他给不了你,假如这个管家只能提供上衣、裤子、鞋子,假如你需要一个公文包怎么办?两个选择,让你的这个管家去补充【修改源代码】,再有一种就是再招一个管家【应用工厂方法模式】,再招的管家和原来的管家都有一个共同的行为,给我提供我需要的东西【共同的行为,可以抽象一个接口,定义一个行为规范】

      工厂方法模式,可以简单理解为你有多个管家,每个管家都负责一样事务,负责你上衣的管家,负责你裤子的管家,负责你鞋子的管家,他们都有一个共同的行为,为你提供你需要的东西。如果来了新的需求,比如说需要一个公文包,那你可以直接招一个负责你公文包的管家即可,这个管家必须有为你提供你需要的东西的行为【实现一个共同的接口】,因为他们都是为你服务的。不一定是招管家【产品可以不一样,工厂方法可以允许产品不一样,只要遵循共同的行为规范即可】,可以是找个女朋友,保姆都是可以的。

      抽象工厂模式,可以这么理解,你有多个女朋友【抽象工厂,共同的行为,为你提供衣服、裤子、鞋子……】和多个管家【抽象产品,提供衣服或裤子或鞋子】,管家是提供衣服(衣服又包含各种颜色,其他的也是分为各种颜色和大小)、裤子、鞋子、公文包等,你的女朋友【具体的工厂】为你提供某套衣服,比如说上班穿的、参加宴会穿的……具体的管家提供具体的某种产品【衣服或者裤子等】

        上面就是我的简单理解。

      >>>>什么事都要亲力亲为

      >>>>找一个能力有限的管家

      >>>>有多个管家,每个管家负责具体的事务

      >>>>有女朋友和管家,管家负责提供具体的东西,而女朋友负责帮你搭配组合。

  • 相关阅读:
    asp.net 2.0 国际化 动态切换语言
    SKU、UPC、EAN和ISBN
    NCalc:处理数学运算的好帮手
    yaf 论坛安装
    Afterlogic xmail 邮局软件不能收email 设置
    要围着中心来做事
    保证Winform程序只有一个实例在运行
    可视热敏读写卡开发
    jQuery CSS 效果
    代碼小片斷
  • 原文地址:https://www.cnblogs.com/dawenyang/p/7614652.html
Copyright © 2020-2023  润新知