摘要:
349. Intersection of Two Arrays 两个数组的交集 阅读全文
摘要:
解释器模式 给定一个语言,定义他的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 如果一种特定类型的问题发生频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。 这样就可以构建一个解释器,该解释器通过解释这些句子来解决问题。 解释器模式的好处 当有一个 阅读全文
摘要:
享元模式 运营共享技术有效地支持大量细粒度的对象。 享元模式的原理 享元模式可以避免大量非常相似类的开销。在程序设计中,有时需要生成大量细粒度的类的实例来表示数据。 如果能发现这些实例除了几个参数外基本都是相通的,有时就能够大幅地减少需要实例化的类的数量。 如果能把那些参数移到类的实例的外面,在方法 阅读全文
摘要:
中介者模式 用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互。 尽管将一个系统分割成许多对象通常可以增加其可复用性,但是对象间相互连接的激增又会降低其可复用性了。 因为大量的连接使得一个对象不可能在没有其他对象的支持下工作, 阅读全文
摘要:
职责链模式 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。 将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 职责链模式的好处 当客户提交一个请求时,请求时艳链传递直至有一个具体处理者负责处理他。 接收者和发送者都没有地方的明确信息,且链中对象自己也 阅读全文
摘要:
命令模式 命令模式将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。 对于请求排队或记录请求日志,以及支持可撤销的操作,行为请求者和行为实现者的紧耦合是不合适的。 命令模式的优点 命令模式能较容易地设计一个命令模式。在需要的情况下,可以 阅读全文
摘要:
桥接模式 桥接模式将抽象部分和他的实现部分分离,是它们都可以独立地变化。 抽象与他的实现分离并不是说让抽象类与其派生类分离,因为这没有任何意义,实现指的是抽象类和他的派生类用来实现自己对象。 实现系统可能有多角度分裂,每一种分类都有可能变化,那么就把这种多角度分离出来让他们独立变化,减它们之间的耦合 阅读全文
摘要:
单例模式 单例模式保证一个类仅有一个实例,并提供一个访问它的全局访问点。 通常我们可以让一个全局变量使得一个对象被访问,但他不能防止你实例化多个对象。 一个最好的办法就是,让类自身负责保存他的唯一实例。 这个类可以保证没有其他实例可以被窗创建,并且他可以提供一个访问该实例的方法。 单例模式结构演示 阅读全文
摘要:
组合模式 组合模式,将对象组合成树形结构以表示部分-整体的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 使用组合模式的时机 需求在是体现部分与整体层次的结构时,以及你希望用户可以忽略组合对象与单个的不同,统一地使用组合对象中的所有对象时,就应该考虑用组合模式了。 组合模式的好处 阅读全文
摘要:
备忘录模式 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可以将该对象恢复到原先保存的状态。 备忘录模式的特点 备忘录模式比较适用于比较复杂但需要维护或记录属性历史的类,或者需要保存的属性只是众多属性中的一小部分时,发起人可以根据保存的备忘录信息还原到前一状态 阅读全文