蝇量模式 发表于 2016-08-01 | 更新于: 2021-02-08 | 分类于 Architecture , 设计模式 | 阅读次数: 字数统计: 155 | 阅读时长 ≈ 1 分钟 设计模式专题系列: 设计模式 蝇量模式如果想让某个类的实例能用来提供许多”虚拟实例”,就使用蝇量模式。 用途: 当一个类有许多的实例,而这些实例能被同一个方法控制的时候,我们就可以使用蝇量模式. 优点: 减少运行时对象实例的个数,节省内存. 将许多”虚拟”对象的状态集中管理. 缺点: 蝇量模式的缺点在于,一旦你实现了它,那么单个的逻辑实例无法拥有独立而不同的行为.
责任链模式 发表于 2016-08-01 | 更新于: 2021-02-08 | 分类于 Architecture , 设计模式 | 阅读次数: 字数统计: 294 | 阅读时长 ≈ 1 分钟 设计模式专题系列: 设计模式 责任链模式当你想要让一个以上的对象有机会能够处理某个请求的时候,就使用责任链模式. 通过责任链模式,可以为某个请求创建一个对象链.每个对象依序检查此请求,并对其进行处理,或者将它传给链中的下一个对象. 拿Android来说,View的 onTouch 等方法都是使用了责任链模式. 阅读全文 »
生成器模式 发表于 2016-08-01 | 更新于: 2021-02-08 | 分类于 Architecture , 设计模式 | 阅读次数: 字数统计: 210 | 阅读时长 ≈ 1 分钟 设计模式专题系列: 设计模式 生成器模式使用生成器模式封装一个产品的构造过程,并允许按步骤构造。 在Android中比较常见了,比如 Dialog,,另外在EffectiveJava的笔记中也有提到,就不多说了. 阅读全文 »
桥接模式 发表于 2016-08-01 | 更新于: 2021-02-08 | 分类于 Architecture , 设计模式 | 阅读次数: 字数统计: 475 | 阅读时长 ≈ 2 分钟 设计模式专题系列: 设计模式 桥接模式桥接模式通过 将实现和抽象放在两个不同的类层次中而使它们可以独立改变。 使用桥接模式不只改变你的实现,也改变你的抽象。 阅读全文 »
模板方法模式 发表于 2016-07-26 | 更新于: 2016-07-29 | 分类于 Architecture , 设计模式 | 阅读次数: 字数统计: 826 | 阅读时长 ≈ 2 分钟 设计模式专题系列: 设计模式 模板方法模式模板方法模式: 在一个方法中定义一个算法的估价,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变方法结构的情况下,重新定义算法的某些步骤。 具体来说: 创建一个算法的模板,这个模板其实就是第一个方法(需要定义为final)。而这个方法将算法定义成一组步骤,其中的任何步骤都可以是抽象的,由子类负责实现。这样可以确保算法结构保持不变,同时由子类提供部分实现。 阅读全文 »
状态模式 发表于 2016-07-26 | 更新于: 2016-07-30 | 分类于 Architecture , 设计模式 | 阅读次数: 字数统计: 381 | 阅读时长 ≈ 1 分钟 设计模式专题系列: 设计模式 状态模式状态模式: 允许对象在内部状态改变时改变它的行为,对象看起来好像修改它的类。 状态模式把每个状态都独立成类,并将动作委托到代表当前状态的对象。 Context需要持有 所有状态的一个实例(弹性的代价),通过不同状态来切换状态对象,把行为委托给当前状态的对象,客户端不知道Context内部的状态,跟策略模式不同,策略模式需要客户端去指定策略,而且一般来讲策略模式就只有一个最佳策略,不会存在多个。 阅读全文 »
代理模式 发表于 2016-07-26 | 更新于: 2021-02-08 | 分类于 Architecture , 设计模式 | 阅读次数: 字数统计: 772 | 阅读时长 ≈ 2 分钟 设计模式专题系列: 设计模式 代理模式 这一章节的内容较多,笔记比较乱,还是看书好些。 代理模式: 为另一个对象提供一个替身或占位符以控制对这个对象的访问。 所谓代理(proxy),就是代表某个真实的对象。 代理要做的就是:控制和管理访问(控制对象访问) why? 是因为Client不知道如何和远程对象沟通。从某方面来看,远程代理控制访问,可以帮忙处理一些细节(比如网络,IPC)。 (Subject可以是接口) 阅读全文 »
观察者模式 发表于 2016-07-26 | 更新于: 2021-02-08 | 分类于 Android , 设计模式 | 阅读次数: 字数统计: 288 | 阅读时长 ≈ 1 分钟 设计模式专题系列: 设计模式 观察者模式观察者模式:定义了对象之间的一对多依赖,这样依赖,当一个对象改变状态时,它的所有依赖者都会受到通知,并自动更新。 出版者(Subject) + 订阅者(Observer) = 观察者模式 观察者依赖于主题。 阅读全文 »
迭代器模式 发表于 2016-07-26 | 更新于: 2021-02-08 | 分类于 Architecture , 设计模式 | 阅读次数: 字数统计: 348 | 阅读时长 ≈ 1 分钟 设计模式专题系列: 设计模式 迭代器模式迭代器模式(Iterator): 提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。 迭代器模式服务『集合』,为了更好地管理集合。 所谓集合(Collection)就是是,一群对象,可以放在数组、堆栈、列表、散列表等。集合有时候也被称为『聚合』(aggregate)。 阅读全文 »
工厂模式 发表于 2016-07-25 | 更新于: 2021-02-08 | 分类于 Architecture , 设计模式 | 阅读次数: 字数统计: 750 | 阅读时长 ≈ 2 分钟 设计模式专题系列: 设计模式 工厂模式工厂模式分两种模式: 工厂方法 抽象工厂 简单工厂使用new Xxx()创建对象非常脆弱,缺乏弹性,耦合度高。 当具体类需要新增或删除的时候,就必须修改这段代码,非常容易出错,难以维护和更新。 所以需要把创建对象的方法封装起来,用“工厂”来负责创建对象。 定义Factory: 使用: 看起来可能只是把代码挪到了另外一个地方,但是其实有不少好处。 阅读全文 »