摘要:1.模式简介 备忘录模式能够在不破坏封装性的前提下,实现对象状态的保存和恢复工作,又叫快照模式或Token模式。保存对象的状态是为了以后在需要的时候快速恢复到保存时的状态,因此常用在备份、撤销操作上,例如编辑器里的撤销、游戏里的存档和悔棋等功能。 备忘录模式有三个组成部分: Originagor(发 阅读全文
posted @ 2019-12-01 23:56 纳兰小依 阅读 (158) 评论 (2) 编辑
摘要:计算数字的二进制形式中1的数量有许多不同的方法,variable precision SWAR算法是其中最快的。它通过若干位运算,将计算过程优化到常数时间。由于算法设计得非常简洁精巧,初看之下有些云里雾里,所以在这里记录下对算法的理解,方便日后查看。 阅读全文
posted @ 2019-11-17 14:00 纳兰小依 阅读 (78) 评论 (0) 编辑
摘要:建造者模式(Builder Pattern)属于创建型模式中的一种,在创建比较复杂的对象,或者对象包含多个组成部分时比较有用,用于将对象的创建过程与使用分离,隔离具体的创建细节,方便以后的扩展。 阅读全文
posted @ 2019-11-09 14:02 纳兰小依 阅读 (91) 评论 (0) 编辑
摘要:原型模式提供了从一个对象复制出新对象的能力,通过克隆自己产生新的实例,对外隐藏了创建的细节。当对象本身比较复杂,创建对象需要许多步骤时,原型模式就派上了用场。 阅读全文
posted @ 2019-11-05 13:04 纳兰小依 阅读 (48) 评论 (0) 编辑
摘要:代理类似一个中间人的角色,出于某些原因,有时我们不能直接接触到真正的目标,只能通过中间人间接与目标交流,这时的中间人起到了限制其他角色访问目标的作用。代理提供了对目标的有限的访问接口,而屏蔽了其他的操作,从而起到保护目标的作用。 阅读全文
posted @ 2019-10-26 23:29 纳兰小依 阅读 (55) 评论 (0) 编辑
摘要:状态模式关注对象的各种状态,当条件变化时,对象能够在各种状态之间相互转换,并且对于同一个操作,不同状态会有不同的表现。状态模式和策略模式有许多相同的地方,比如它们的类结构基本相同,都使用组合来增加灵活性等。 阅读全文
posted @ 2019-10-19 19:44 纳兰小依 阅读 (62) 评论 (0) 编辑
摘要:组合模式允许用户将对象组合成树形结构来表现“整体/部分”的层次结构,从而能够以一致的方式处理单个对象以及对象组合。 阅读全文
posted @ 2019-10-13 18:40 纳兰小依 阅读 (40) 评论 (0) 编辑
摘要:迭代器模式提供了一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部实现。 阅读全文
posted @ 2019-10-06 23:57 纳兰小依 阅读 (179) 评论 (0) 编辑
摘要:命令模式关注动作本身,通过将动作封装成对象实现调用者和底层实现相分离。调用者只需要简单的下达命令,然后等待命令完成即可,对底层发生了什么完全不知情。 阅读全文
posted @ 2019-10-01 13:17 纳兰小依 阅读 (131) 评论 (0) 编辑
摘要:装饰者模式能够动态地将责任附加到对象上,在扩展对象功能方面比继承更加灵活。 阅读全文
posted @ 2019-09-29 00:31 纳兰小依 阅读 (79) 评论 (0) 编辑