索引 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):用抽象类定义 Facade 而使子类对应于不同的子系统。 意图 为子系统中的一组接口提供一个一致的界面,Facade 模式定义了一个高层接口,这个接…
设计模式之美:Memento(备忘录)
索引 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):Memento 模式结构样式代码。 别名 Token 意图 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可…
设计模式之美:Abstract Factory(抽象工厂)
索引 别名 意图 结构 参与者 适用性 缺点 效果 相关模式 命名约定 实现 实现方式(一):使用 Factory Method 来实现 Abstract Factory。 实现方式(二):使用 Prototype 来实…
设计模式之美:Adapter(适配器)
索引 别名 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):简单直接的对象适配器。 实现方式(二):实现双向类适配器。 别名 包装器(Wrapper) 意图 将一个类的接口转换成客户希望的另外一个接口。…
设计模式之美:Visitor(访问者)
索引 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):Visitor 模式结构样式代码。 实现方式(二):使用 Visitor 模式解构设计。 实现方式(三):使用 Acyclic Visitor 模式…
设计模式之美:Command(命令)
索引 别名 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):直接注入 Receiver 对象,Command 决定调用哪个方法。 实现方式(二):注入 Receiver 的指定方法,Command 仅能…
设计模式之美:Singleton(单件)
索引 意图 结构 参与者 适用性 缺点 效果 相关模式 实现 实现方式(一):使用 Static 变量初始化 Singleton。 实现方式(二):使用 Lazy Initialization 来实现 Singleton…
常用数据结构及复杂度
常用数据结构的时间复杂度 Data Structure Add Find Delete GetByIndex Array (T[]) O(n) O(n) O(n) O(1) Linked list…
字典树
字典树(Trie)是一种很特别的树状信息检索数据结构,如同其名,它的构成就像一本字典,可以让你快速的进行字符插入、字符串搜索等。 Trie 一词来自 retrieval,发音为 /tri:/ “tree…
算法复杂度分析
为什么要进行算法分析? 预测算法所需的资源 计算时间(CPU 消耗) 内存空间(RAM 消耗) 通信时间(带宽消耗) 预测算法的运行时间 在给定输入规模时,所执行的基本操作数量。 或者称为算法复杂度(Algorithm …
自平衡二叉查找树
自平衡二叉查找树(Self-Balancing Binary Search Tree) AVL 树 红黑树(Red-Black Tree) 自平衡二叉查找树(Self-Balancing Binary Search Tr…
二叉查找树
在文章《常用数据结构及复杂度》中,介绍了一些计算机程序设计中常用的线性数据结构,包括 Array、ArrayList、LinkedList<T>、List<T>、Stack<T>、Qu…