摘要:
Memento模式即快照模式,就是在某一时刻,设定一个状态,在后面随时可以返回到当前状态的模式。 我们拿一个闯关游戏作为举例,一共有十关,每闯一关,玩家所持金额增加一百,而闯关失败就扣一百。初始时,给玩家一百块作为闯关资金,如果十关全部闯玩,并且玩家手中金额不小于0,则胜利,当玩家所持金额小于0,则视为闯关失败,直接退出。 下面看案例代码,有一个玩家类 gamer package site.wa... 阅读全文
摘要:
Observer模式又叫做观察者模式,当观察对象状态发生变化的时候,就会通知给观察者。这种模式适用于根据对象状态进行响应的场景! 实例程序是一个输出数字的程序。 观察者Observer类用于每500ms监测着数字是否发生变化 package site.wangxin520.gof.observer.damo; /** * 监听器模式 * @author wangXgnaw * */ p... 阅读全文
摘要:
Facade模式,又叫做窗口模式,指的是针对于庞大的类之间错综复杂的关系而提出的一种想法,就相当于我们开发web应用程序的时候使用的controller,service,dao层一样,把底部的与数据库交互的类以及对数据进行操作的类给封装起来,对外只提供contorller的数据接口,而这个controller就相当于是一个窗口。所以,我觉得,窗口模式,更多的是一种思维方式,同样的工具类的思... 阅读全文
摘要:
Chain of Responsibility模式又叫做责任链模式,是将多个对象组成一条职责链,然后按照职责链上的顺序一个一个的找出是谁来负责处理。 这个模式很简单,下面就是一个实例程序,有六个处理器,能分别处理一些六个级别的问题,现在有一堆问题在那,那么我们就把处理器进行串行连接,依次将问题通过,如果是自己的那就处理,不是自己的那就不处理,让下一个处理器处理,最后都没处理器处理的就直接输出,控制... 阅读全文
摘要:
visitor模式,又叫访问者模式,把结构和数据分开,编写一个访问者,去访问数据结构中的元素,然后把对各元素的处理全部交给访问者类。这样,当需要增加新的处理时候,只需要编写新的 访问者类,让数据结构可以接受访问者的访问即可。 本次,我们以电脑装机为例。需求是,想组装一台电脑,有三个硬件,显卡,CPU和硬盘,想装进电脑主机箱里面,只能采取接口的方式。首先我们假设使用的是usb接口去连... 阅读全文
摘要:
Decorator模式又叫装饰者模式,这种模式是为了满足Java开发的“面向扩展开放,面向修改闭源”的开发原则设计出来的。 在装饰者模式中,不修改源类的代码,却能修改源类中方法的功能。下面就以Angelababy化妆为例,详细介绍一下为什么需要装饰者模式,以及装饰者模式怎么实现: 先介绍angelababy类 package site.wangxin520.gof.decorator; /**... 阅读全文
摘要:
composite模式又叫做组合模式/复合模式。 它是一种能够使容器与内容具有一致性,创造出递归结构的模式。 示例程序是列出文件夹以及其内部文件与文件夹一览的功能: 可以由示例图看出,有一个电影文件夹里面有两个文件夹,一个是正常,一个是你懂得。 在正常文件夹里面有三个电影,分别是泰坦尼克号,终结者和钢铁侠。 而在你懂得文件夹里面有两部电影和一个葵司文件夹,两部电影分别是列车.avi和苍老师.av... 阅读全文
摘要:
strategy模式,即策略模式。个人觉得吧,策略模式更多的是一种思维方式。 首先我们要知道,为什么需要策略模式。举个例子,比如用程序输出今天下午去玩什么。 PlayGame 玩游戏 package site.wangxin520.gof.strategy.demo; /** * 玩游戏的类 * @author wangXgnaw * */ public class PlayGame ... 阅读全文
摘要:
Bridge模式,又叫桥接模式,是针对同一接口进行扩展与实现操作的一种设计模式。 这种模式,与之前学过的适配器模式具有相似的地方,也有不同的地方,下面就让我们一一解析吧。 首先,我们要了解到,为什么需要使用Bridge模式: 现在有一个抽象类/接口,这个抽象类是起到了一个规范的作用,规范一些方法。 示例是用来在控制台中打印输出框和字符串(规范输出) DisplayImpl 抽象类,规范了打印的方... 阅读全文