bboyjing's blog


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

  • 公益404
bboyjing's blog

HeadFirst设计模式八【外观模式】

发表于 2019-11-05 | 分类于 设计模式

上一节适配器模式最后引出了外观模式,再重申一下外观模式的作用。它是一个改变接口的新模式,但是改变接口的原因是为了简化接口。它将一个或数个类的复杂的一切隐藏在背后,只显露出一个干净美好的外观。

场景描述

假设我们家里建立一套家庭影院,经过一番研究,组装了一套杀手级的系统 。内含DVD播放器、投影机、自动屏幕、环绕立体声,甚至还有爆米花机。花了好几个星期布线、挂上投影机、连接所有的装置并调试。现在,准备开始享受一部电影了,但是得先执行如下任务:

阅读全文 »
bboyjing's blog

HeadFirst设计模式七【适配器模式】

发表于 2019-11-02 | 分类于 设计模式

还记得之前学的装饰者模式,是将对象包装起来,赋予它们新的职能。而这一篇要学的适配器模式目的相反,包装某些对象,让他们的接口看起来不像自己而像是别的东西。因为这样就可以在设计中,将类的接口转换成想要的接口。下面就来具体看看。

场景描述

先说一说现实中的场景最典型的一个适配器场景,就是插座。我们国内的、欧洲的、美国的插座可能都不一样,出国的时候买的转接头,就是适配器。比如去欧洲,它插在国内的插头和欧洲的插座之间,不用改任何一方就实现了适配。这里的话,用策略模式的鸭子们来模拟一个场景,假设需要很多鸭子对象,鸭子不够了。手边有一个新的物种,火鸡,它有自己的接口。因为火鸡的接口不同,所以我们不能公然拿来用,那我们看下适配器模式在这个场景下是如何工作的。

阅读全文 »
bboyjing's blog

HeadFirst设计模式六【命令模式】

发表于 2019-10-30 | 分类于 设计模式

命令模式把封装带到一个全新的境界,把方法调用封装起来。乍一听好像没什么特别的,不明白这个模式有什么特别的地方,下面就来详细看下。

场景描述

假设有一个遥控器,上面有N个插槽,插槽中可以插入接口匹配的电器,比如电灯、电风扇之类。每一个插槽对应两个开关:ON、OFF,外加一个整体共用的撤销按钮,会撤销最后一个按钮的动作。这个场景的关键问题在于遥控器并不知道每个电器的内部实现,但是插上去却能控制电器的开关 ,遥控器与电器完全解耦。下面就看下命令模式是如何实现的。

代码示例

下面将由浅入深,来逐步实现命令模式。

阅读全文 »
bboyjing's blog

HeadFirst设计模式五【单例模式】

发表于 2019-10-29 | 分类于 设计模式

单例模式是用来创建只能有一个实例对象的模式,该模式虽然只有一个类,但却并没有想象中那么容易,下面我们就一起来学习下。

场景描述

单例模式的类图上只有一个类,场景很简单,就是有一个类,让它只能实例化。

代码示例

下面会列出几个版本的代码示例,其中有的版本是有问题的,最终逐步会实现成最终正确的版本。

阅读全文 »
bboyjing's blog

HeadFirst设计模式四【工厂模式】

发表于 2019-10-22 | 分类于 设计模式

本章将学习如何使用工厂模式来解放new操作符,如何从复杂的依赖关系中脱困。

场景描述

书中描述了一个订购披萨的场景,披萨有很多种,但是每一种的制作过程都一样。用户在披萨商店下单,商店根据种类来制作各种披萨。工厂模式的实现使得构造各种类型披萨变得灵活。工厂方法又细分成了三种,分别是:简单工厂、抽象工厂和工厂方法。下面就逐个来看下。

阅读全文 »
1…567…30
bboyjing

bboyjing

147 日志
17 分类
20 标签
友情链接
  • bailaohe
© 2021 bboyjing
由 Hexo 强力驱动
主题 - NexT.Mist