
设计模式
文章平均质量分 78
她做了一个梦
北漂一族
展开
-
享元模式
定义:享元模式是池技术的重要实现方式,其定义如下:使用共享对象可有效地支持大量的细粒度的对象(细粒度模型,通俗的讲就是将业务模型中的对象加以细分,从而得到更科学合理的对象,直观地说就是划分出很多对象)。我们知道 分配太多的对象到应用程序中将有损程序的性能,还很容易造成内存溢出,享元模式可以很好的解决这个问题。要求细粒度对象,会使得对象数量多而且性质相近,那我们将这些对象的信息分为两个部分:原创 2015-05-11 11:49:42 · 484 阅读 · 0 评论 -
门面模式
定义: 门面模式也叫做外观模式,是一种比较常用的封装模式,它要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。门面模式注重统一的对象,也就是提供一个访问子系统的接口,除了这个接口不允许有任何访问子系统的行为发生。门面模式的角色:1.门面角色 客户端可以调用这个角色,此角色知晓子系统的所有功能和责任。此橘色会将所有从客户端发原创 2015-05-05 13:57:48 · 468 阅读 · 0 评论 -
适配器模式
定义:将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式又叫变压器模式,也叫包装模式,装饰模式也是包装模式。适配器有三个角色:1.Target目标角色 该角色定义把其他类转换为何种接口,也就是我们期望的接口。2.Adapter源角色 你想把谁转换成目标角色,这个“谁”就是源角色,它是已经存原创 2015-04-27 16:45:11 · 538 阅读 · 0 评论 -
策略模式
定义:定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。策略模式使用的是面向对象的继承和多态机制,它包含三个角色:1.Context 封装角色 也叫做上下文角色,起承上启下封装作用,屏蔽高层模块对策略、算法的直接访问,封装可能存在的变化。2.Strategy抽象策略角色 策略、算法家族的抽象类,通常为接口,定义每个策略或算法必须具有的方法和属性。3.Concret原创 2015-04-24 15:00:58 · 445 阅读 · 0 评论 -
装饰模式
定义:动态的给一个对象添加一些额外的职责。(图都是截的,)装饰模式有四个角色:1.Component抽象构件 Component 是一个抽象类或接口,负责定义最核心的对象。(在装饰模式中,必然有一个最基本,最核心,最原始的接口或者抽象类充当Component抽象构件)2.ConcreteComponent 具体构件 它是最核心 最原始 最基本的接口或抽象类的实现,你要原创 2015-04-23 14:58:58 · 468 阅读 · 0 评论 -
责任链模式
定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连城一条链,并沿着这条链传递该请求,直到有对象处理它为止。/** * 抽象处理者 * */public abstract class Handler { private Handler nextHandler; //每个处理者都必须对请求作出处理 public final Respon原创 2015-04-22 16:23:45 · 460 阅读 · 0 评论 -
命令模式
定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。它是一个高内聚的模式。命令模式有三个角色Receiver接收者角色 命令传递到这里是应该被执行的,(是下例中的group的三个实现类)。Command 命令角色 需要执行的所有命令都在这里声明invoker 调用者角色原创 2015-04-22 14:21:34 · 416 阅读 · 0 评论 -
中介者模式
定义:用一个中介对象封装一系列的对象交互,中介者使对象不需要显示的相互作用,从而使其耦合松散,而且可以独立的改变它们之间的交互。中介者模式由以下几部分组成:1.Mediator 抽象中介者角色 抽象中介者角色定义统一的接口,用于各同事角色之间的通信。2.Concrete Mediator 具体中介者角色具体中介者通过协调各同事角色实现协作行为,因为它必须依赖各个同事角色。3.C原创 2015-04-21 16:27:30 · 483 阅读 · 0 评论 -
原型模式
定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型 创建新的对象。原型模式的核心是一个clone方法。优点:原型模式是在内存二进制流的拷贝,要比直接new一个对象性能要好很多,特别是要在一个循环体内产生大量的对象时,原型模式可以更好的体现其优点。避免构造函数的约束,直接在内存中拷贝,构造函数不会被执行。使用场景:1.类初始化需要消耗非常多的资源,这个资源包括数据、硬件资源等。原创 2015-04-14 16:44:42 · 426 阅读 · 0 评论 -
代理模式扩展
普通代理模式 :普通代理要求客户端只能访问代理角色,而不能访问真实角色。在这种模式下,屏蔽了真实角色变更对高层模块的影响。public interface IGamePlayer { public void login(String userName ,String password); public void killBoss(); public void up原创 2015-04-10 15:18:33 · 583 阅读 · 0 评论 -
代理模式
定义:为其他对象提供一种代理,以控制对这个对象的访问。代理模式也叫委托模式,它是一项基本设计技巧,可以提供非常好的访问控制。角色定义1.Subject抽象主题角色 抽象主题可以是抽象类 也可以是接口,是一个普通的业务类型定义2.RealSubject 具体主题角色 被委托角色,被代理角色,是业务逻辑的具体执行者3.Proxy代理主题角色原创 2015-04-07 22:03:10 · 434 阅读 · 0 评论 -
建造者模式
参考 1设计模式之蝉 2 https://github.com/simple-android-framework/android_design_patterns_analysis/tree/master/builder/mr.simple定义:将一个复杂对象的构建与它的表示分离,使得同样的创建过程可以创建不同的表示。角色:Product:产品类 通常实现了模板方法模原创 2015-04-07 14:12:16 · 473 阅读 · 0 评论 -
模板方法模式
定义:定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法仅仅使用了继承机制,抽象模板的方法分为两类,1.基本方法 子类需要实现的方法,并且在子类方法中被调用2.模板方法 可以有一个或几个 一般是一个具体方法,public abstract class BaseActivity extends Act原创 2015-04-03 16:07:33 · 442 阅读 · 0 评论