reupe

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

03 2019 档案

摘要:电子游戏过去都会有一个“记录”或者“存盘”的功能,就是当玩家在游戏过程中将当前的游戏状态记录下来,以便于之后重新登录游戏后读取到记录时的状态。这种将对象的状态先保存起来,以后再根据保存的数据恢复对象状态的设计模式,就是备忘录模式。 1. 备忘录模式 备忘录模式的UML类图为: Originator: 阅读全文
posted @ 2019-03-28 19:41 yxlaisj 阅读(277) 评论(0) 推荐(0)

摘要:遍历元素在编程中十分常用,毋庸置疑只要是一个容器,都应该提供遍历其内部元素的方式,这就是本文介绍的迭代器模式。 1.迭代器模式 迭代器模式(Iterator pattern) 提供一个迭代器,它可以按顺序遍历并访问容器中的元素,而无需暴露迭代器的内部实现。 迭代器模式如此常用,以至于Java标准库中 阅读全文
posted @ 2019-03-23 13:21 yxlaisj 阅读(252) 评论(0) 推荐(0)

摘要:电灯开关一般有两个状态:开和关,通过按下开关可以关闭或者打开电灯。那么,“开”和“关”实际上应该是开关的两种内部状态,当开关的状态发生变化时,其行为也会发生变化,比如,开关状态变为了“关”,那么就应该熄灯 并且使能“开”。 1.状态模式 状态模式的定义如下: 状态模式(State Pattern), 阅读全文
posted @ 2019-03-19 20:00 yxlaisj 阅读(536) 评论(0) 推荐(0)

摘要:交通信号灯相信大家都不陌生,红灯停、绿灯行,见了黄灯等一等。交通信号灯、海边的信号塔等等,都伫立在那里,随时准备给行人/货船发送信号,以提醒行人/货船该采取相应行动了。信号灯就是发布信号的对象,行人是接收信号并采取具体行动的观察者。这一过程,在程序设计中也常常用到,即本文介绍的观察者模式。 1.观察 阅读全文
posted @ 2019-03-17 22:08 yxlaisj 阅读(343) 评论(0) 推荐(0)

摘要:电子设备之间有线数据传输常用USB来进行,例如现在某果笔记本统一采用了USB type-c接口,而目前绝大多数即用即插存储介质用的是USB type-b接口,那么为了适配,往往需要消费者购买转换坞等中间设备进行过渡,这种模式其实就是程序设计中常用的适配器模式,另一个形象的实例就是扳手为了拧动型号的螺 阅读全文
posted @ 2019-03-15 19:02 yxlaisj 阅读(285) 评论(0) 推荐(0)

摘要:当你翻看一本新书的时候,总是会首先翻到书的目录页,通过目录,让你知道书的主要内容是什么,每一章的内容是从哪一页开始。对的,目录就像是一本书的窗口。本文要介绍的外观模式或者叫做门面模式,正如书的目录一样,往往充当着一个或者多个子系统窗口的角色。 1.外观模式 外观模式(Facade Pattern) 阅读全文
posted @ 2019-03-13 20:19 yxlaisj 阅读(188) 评论(0) 推荐(0)

摘要:创建一个对象,有时候是很复杂的一件事,比如在模板方法模式中讲到的Car对象,创建它,就需要装配底盘、轮胎、发动机、车身等部件,甚至之后还需要喷漆等工序。模版方法模式,主要解决的是算法中不变部分与可变部分的解耦,将可变部分算法推迟到子类中去实现;而本文要介绍的建造者模式,则是一种创建模式,顾名思义,就 阅读全文
posted @ 2019-03-09 23:08 yxlaisj 阅读(295) 评论(0) 推荐(0)

摘要:抽象是面向对象编程的核心思想,从某种角度来看,抽象,就是把可变的部分和不可变部分分离开来,今天介绍的模板方法模式,体现的就是这样一种思想。总结起来,模板方法模式可以用一句话来概括:以不变应万变。 1.模板方法模式 模板方法模式(Template Method Pattern),定义了一个算法的骨架, 阅读全文
posted @ 2019-03-08 09:49 yxlaisj 阅读(555) 评论(0) 推荐(0)

摘要:细胞的有丝分裂会产生两个基因相同的细胞,基因相同就表示它们一模一样。这一过程很像代码设计中的一个设计模式,即原型模式。 1.原型模式 原型模式(Prototype Pattern),就是以一个现有的对象为原型,克隆出一个或多个一模一样的对象。 原型模式的UML类图: Prototype(抽象原型类) 阅读全文
posted @ 2019-03-04 20:09 yxlaisj 阅读(220) 评论(0) 推荐(0)

摘要:很多时候我们试图发送一个请求的时候,实际上是由代理将我们的请求转发给目标对象,这种代理方式叫做正向代理,正向代理就是客户端的代理,我们知道访问目标的真实地址,而真实目标只知道这次请求是代理发送的却不知道背后的我们;又有些时候,我们输入某url发送一个请求,实际上这个url并非真实服务器,而是服务器的 阅读全文
posted @ 2019-03-03 16:28 yxlaisj 阅读(412) 评论(0) 推荐(0)

摘要:按照单一职责原则,某一个对象只专注于干一件事,而如果要扩展其职能的话,不如想办法分离出一个类来“包装”这个对象,而这个扩展出的类则专注于实现扩展功能。 装饰器模式就可以将新功能动态地附加于现有对象而不改变现有对象的功能。 1.装饰器模式 实际上Java提供的工具包中,IO相关工具就普遍大量使用了装饰 阅读全文
posted @ 2019-03-01 22:44 yxlaisj 阅读(9181) 评论(0) 推荐(3)