当前标签: First
Head First设计模式——原型模式和访问者模式
原型 原型模式:当创建给定类的过程很昂贵或很复杂时,就使用原型模式。 我们在进行游戏的时候游戏会动态创建怪,而怪时根据场景的不同而变化创建的,英雄自己也会创建一些随从。创建各式各样的怪兽实例,已经越来越麻烦,将各种状态细节放再构造器中,看起来一点都不内聚。如果能够在单一区域内封装所有的实例化细节,能够将负责处理...
2020-03-23 08:30
阅读(18)
Head First设计模式——中介者模式和备忘录模式
中介者 中介者模式:使用中介者来集中相关对象之间复杂的沟通方式和控制方式。 Bob有一个自动屋,当他的闹钟响了只有,闹钟会告诉咖啡壶开始煮咖啡。后来客户不断的提出许多新需求:周末不要提供咖啡、下班后需要扫地机器人扫地等。这个时候咖啡壶需要接受闹钟并检查日期,而日历需要接受闹钟的询问并告诉闹钟是否周末,扫地机器人...
2020-03-17 09:39
阅读(38)
Head First设计模式——蝇量模式和解释器模式
蝇量 蝇量模式:如果让某个类的一个实例能用来提供许多“虚拟实例”,就使用蝇量模式。 在一个设计房子的平台中,周围要加上一些树,树有一个坐标XY坐标位置,而且可以根据树的年龄动态将自己绘制出来。如果我们创建许多树之后,会有许多树的实例对象。使用一个树实例和一个客户对象来维护“所有”树的状态,这就是蝇量模式。 设...
2020-03-15 12:49
阅读(44)
Head First设计模式——生成器模式和责任链模式
生成器 生成器模式:封装一个产品的构造过程,并允许按步骤构造。 现又一个度假计划指定,需要指定度假每一天的活动、旅馆、用餐、门票等等事情,但是每个客人的度假计划可能不太一样。例如天数、活动类型、用餐等等。 我们需要一个弹性的数据结构,代表客人的规划,以及不同的变化,也需要一系列潜在复杂顺...
2020-03-13 13:18
阅读(20)
Head First设计模式——桥接模式
桥接模式 桥接模式:不只改变你的实现,也改变你的抽象。 如果有一个电视厂家,遥控器需要升级,电视也需要修改。这种变化部分的封装就适合使用桥接模式,桥接模式通过将实现和抽象放在两个不同的类层次中而使它们可以独立改变。 设计类图: 实现遥控器抽象类 1 public abstract class ...
2020-03-12 09:17
阅读(26)
Head First设计模式——代理模式
在HeadFirst设计模式中代理模式用了比较多的篇幅来讲解,其中的例子我感觉有些繁琐,所以我们这篇就不按照惯例用例子来阐述代理模式了。我们直接进入正题,分析模式本身的设计和解决的问题。 远程代理模式 假如我们有一个系统,能够调用本地对象,然后将每个请求转发到远程对象上进行调用应该如何设计。 ...
2020-02-28 09:29
阅读(30)
Head First设计模式——命令模式
前言:命令模式我们平常可能会经常使用,如果我们不了解命令模式的结构和定义那么在使用的时候也不会将它对号入座。 举个例子:在winform开发的时候我们常常要用同一个界面来进行文件的下载,但是并不是所有地方都用同一个下载逻辑处理文件,然后下载界面却可以是同一个界面。 为了以后复用下载界面(下载显示,进度条等)我们...
2019-11-20 08:13
阅读(13)
Head First设计模式——简单工厂、工厂、抽象工厂
前言:按照惯例我以Head First设计模式的工厂模式例子开始编码学习。并由简单工厂,工厂模式,抽象工厂模式依次演变,归纳他们的相同与不同。 话说Head First认为简单工厂并不是设计模式,而是一种编程习惯,但并不妨碍我们使用它,接下来我们对工厂模式一探究竟。 1、披萨店例子 首先我们要开一个披萨店,对于...
2019-11-07 01:38
阅读(13)