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