关灯
开启左侧

几种常见的设计模式

[复制链接]
秋名山车神 发表于 2018-6-7 17:18:37 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
 
本帖最后由 秋名山车神 于 2018-6-7 17:44 编辑

1.Abstract Factory—抽象工厂模式
      追 MM 少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是 MM 爱吃的东西, 虽然口味有所不同,但不管你带 MM 去麦当劳或肯德基,只管向服务员说“来四个鸡 翅”就行了。麦当劳和肯德基就是生产鸡翅的 Factory
抽象工厂模式.png
      客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。 消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。 如:如何创建及如何向客户端提供。
2.Builder—建造者模式
      MM 最爱听的就是“我爱你”这句话了,见到不同地方的 MM,要能够用她们的 方言跟她说这句话哦,我有一个多种语言翻译机,上面每种语言都有一个按键,见到 MM 我只要按对应的键,它就能够用相应的语言说出“我爱你”这句话了,国外的 MM 也可以轻松搞掂,这就是我的“我爱你”builder。(这一定比美军在伊拉克用的翻 译机好卖)
建造者模式.png

      将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有 不同的内部表象的产品对象。建造模式使得产品内部表象可以独立的变化,客户不必 知道产品内部组成的细节。建造模式可以强制实行一种分步骤进行的建造过程。

3.Factory Method—工厂方法模式
      请 MM 去麦当劳吃汉堡,不同的 MM 有不同的口味,要每个都记住是一件烦人 的事情,我一般采用 Factory Method 模式,带着 MM 到服务员那儿,说“要一个汉堡”,具体要什么样的汉堡呢,让 MM 直接跟服务员说就行了。
工厂方法模式.png

      核心工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做, 成为一个抽象工厂角色,仅负责给出具体工厂类必须实现的接口,而不接触哪一个产 品类应当被实例化这种细节。

4.Singleton—单例模式

      俺有 6 个漂亮的老婆,她们的老公都是我,我就是我们家里的老公 Sigleton,她 们只要说道“老公”,都是指的同一个人,那就是我(刚才做了个梦啦,哪有这么好的 事)
单例模式.png

      单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个 实例单例模式。单例模式只应在有真正的“单一实例”的需求时才可使用。

5.Adapter—适配器(变压器)模式

      在朋友聚会上碰到了一个美女 Sarah,从香港来的,可我不会说粤语,她不会说 普通话,只好求助于我的朋友 kent 了,他作为我和 Sarah 之间的 Adapter,让我和 Sarah 可以相互交谈了(也不知道他会不会耍我)
适配器模式.png

      把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口原因不 匹配而无法一起工作的两个类能够一起工作。适配类可以根据参数返还一个合适的实 例给客户端。

6.Proxy—代理模式

      跟 MM 在网上聊天,一开头总是“hi,你好”,“你从哪儿来呀?”“你多大了?” “身高多少呀?”这些话,真烦人,写个程序做为我的 Proxy 吧,凡是接收到这些话 都设置好了自动的回答,接收到其他的话时再通知我回答,怎么样,酷吧。
代理模式.png


      代理模式给某一个对象提供一个代理对象,并由代理对象控制对源对象的引用。 代理就是一个人或一个机构代表另一个人或者一个机构采取行动。某些情况下,客户 不想或者不能够直接引用一个对象,代理对象可以在客户和目标对象直接起到中介的 作用。客户端分辨不出代理主题对象与真实主题对象。代理模式可以并不知道真正的 被代理对象,而仅仅持有一个被代理对象的接口,这时候代理对象不能够创建被代理对象,被代理对象必须有系统的其他角色代为创建并传入。





 

精彩评论1

正序浏览
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

排行榜
关闭

站长推荐上一条 /1 下一条

官方微信

全国服务热线:

400-0708-360

公司地址:国家西部信息安全产业基地(成都市高新区云华路333号)

邮编:610000    Email:2908503813@qq.com

Copyright   ©2015-2016  EOIT论坛Powered by©Discuz!    ( 蜀ICP备11000634号-7 )