设计模式
文章平均质量分 85
古道边
做一个有态度的开发工程师!
展开
-
Android设计模式源码解析之外观模式(Facade)
1. 模式介绍模式的定义外观模式(也成为门面模式)要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。它提供一个高层次的接口,使得子系统更易于使用。模式的使用场景在设计初期阶段,将不同的两个层分离;在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂,大多数的模式使用时也都会产生很多很小的类,这本是好事,但也给外部调用它们的用户程序带来了使用上的困难,转载 2015-11-03 16:45:53 · 455 阅读 · 0 评论 -
Android设计模式源码解析之原型模式
1. 模式介绍模式的定义用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。模式的使用场景类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等,通过原型拷贝避免这些消耗;通过 new 产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式;一个对象需要提供给其他对象访问,而且各个调用者可能都需要修改其值时,可以考虑使用原型模式拷贝多个对象供调用者使用,转载 2015-11-03 16:50:40 · 319 阅读 · 0 评论 -
Android设计模式源码解析之桥接模式
模式介绍模式的定义将抽象部分与实现部分分离,使它们都可以独立的变化。模式的使用场景如果一个系统需要在构件的抽象化角色和具体化角色之间添加更多的灵活性,避免在两个层次之间建立静态的联系。设计要求实现化角色的任何改变不应当影响客户端,或者实现化角色的改变对客户端是完全透明的。需要跨越多个平台的图形和窗口系统上。一个类存在两个独立变化的维度,且两个维度都需要进行扩展。转载 2015-11-03 16:50:11 · 877 阅读 · 0 评论 -
Android设计模式源码解析之单例模式
1. 模式介绍 模式的定义确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 模式的使用场景确保某个类有且只有一个对象的场景,例如创建一个对象需要消耗的资源过多,如要访问 IO 和数据库等资源。2 . UML类图 角色介绍Client : 高层客户端。Singleton : 单例类。转载 2015-11-03 16:41:44 · 360 阅读 · 0 评论 -
Android设计模式源码解析之迭代器(Iterator)模式
1. 模式介绍模式的定义迭代器(Iterator)模式,又叫做游标(Cursor)模式。GOF给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。模式的使用场景 Java JDK 1.2 版开始支持迭代器。每一个迭代器提供next()以及hasNext()方法,同时也支持remove()(1.8的时候remov转载 2015-11-03 16:48:26 · 1127 阅读 · 0 评论 -
Binder中的代理模式
Binder中的代理模式再说Binder中的代理模式之前,我们需要先看看代理模式的简单实现,这一部分内容采用了《JAVA与模式》之代理模式这篇文章中的代码示例和uml类图。1. 模式介绍代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。模式的使用场景就是一个人或者机构代表另一个人或者机构采取行动。在一些情况下转载 2015-11-03 16:47:49 · 1282 阅读 · 0 评论 -
Android设计模式源码解析之模板方法模式
1. 模式介绍模式的定义定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模式的使用场景多个子类有公有的方法,并且逻辑基本相同时。重要、复杂的算法,可以把核心算法设计为模板方法,周边的相关细节功能则由各个子类实现。重构时,模板方法模式是一个经常使用的模式,把相同的代码抽取到父类中,然后通过钩子函数约转载 2015-11-03 16:46:35 · 338 阅读 · 0 评论 -
公共技术点之面向对象六大原则
概述在工作初期,我们可能会经常会有这样的感觉,自己的代码接口设计混乱、代码耦合较为严重、一个类的代码过多等等,自己回头看的时候都觉得汗颜。再看那些知名的开源库,它们大多有着整洁的代码、清晰简单的接口、职责单一的类,这个时候我们通常会捶胸顿足而感叹:什么时候老夫才能写出这样的代码!在做开发的这些年中,我渐渐的感觉到,其实国内的一些初、中级工程师写的东西不规范或者说不够清晰的原因是缺乏转载 2015-11-03 16:51:56 · 481 阅读 · 0 评论 -
Android设计模式源码解析之Builder模式
1. 模式介绍模式的定义将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。模式的使用场景相同的方法,不同的执行顺序,产生不同的事件结果时;多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时;产品类非常复杂,或者产品类中的调用顺序不同产生了不同的效能,这个时候使用建造者模式非常合适;2. UML类图转载 2015-11-03 16:45:06 · 369 阅读 · 0 评论 -
Android设计模式源码解析之命令模式
1. 模式介绍模式的定义将一个请求封装成一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。模式的使用场景系统需要将请求调用者和请求接收者解耦,使得调用者和接收者不直接交互。系统需要在不同的时间指定请求、将请求排队和执行请求。系统需要支持命令的撤销(Undo)操作和恢复(Redo)操作。系统需要将一组操作组合在一起,即支转载 2015-11-03 16:49:46 · 444 阅读 · 0 评论 -
Android设计模式源码解析之责任链模式
1. 模式介绍模式的定义一个请求沿着一条“链”传递,直到该“链”上的某个处理者处理它为止。模式的使用场景一个请求可以被多个处理者处理或处理者未明确指定时。2. UML类图角色介绍Client:客户端Handler:抽象处理者ConcreteHandler:具体处理者3. 模式的简单实现简单实现的转载 2015-11-03 16:49:14 · 656 阅读 · 0 评论 -
Android设计模式源码解析之策略模式
1. 模式介绍模式的定义策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。注:针对同一类型操作,将复杂多样的处理方式分别开来,有选择的实现各自特有的操作。模式的使用场景针对同一类型问题的多种处理方式,仅仅是具体行为有差别时。需要安全的封装多种同一类型的操作时。出现同一抽象多个子类,而又需转载 2015-11-03 16:47:07 · 373 阅读 · 0 评论