设计模式
安静的蓝孩子
这个作者很懒,什么都没留下…
展开
-
设计模式整理(8) 责任链模式
学习《Android 源码设计模式解析与实践》系列笔记 介绍 所谓的链,是指将多个节点首尾相连形成的结构。 编程中的责任链模式,类似于这种结构,将每个节点看作是一个对象,每个对象拥有不同的处理逻辑,将一个请求从链式的首端发出,沿着链的路径一次传递,直到有对象处理这个请求为止,我们将这样的模式称为责任链模式。 责任链模式属于行为型设计模式。 定义 使多个对象都有机会处理请求,从而避免了请求的发送...原创 2019-02-14 17:04:24 · 246 阅读 · 0 评论 -
设计模式整理(11) 装饰模式
学习《Android 源码设计模式解析与实践》系列笔记 介绍 装饰模式,也称包装模式,结构型设计模式之一。 定义 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。 使用场景 需要透明且动态地扩展类的功能时。 结构 Component : 抽象组件。接口或抽象类,被装饰的原始对象。 ConcreteComponent : 组件具体实现类。 Decorator...原创 2019-03-01 13:55:48 · 160 阅读 · 0 评论 -
设计模式整理(7) 状态模式
学习《Android 源码设计模式解析与实践》系列笔记 介绍 状态模式和策略模式都是行为型模式。 状态模式中的行为是由状态来决定的,不同的状态下有不同的行为。状态模式和策略模式的结构基本一样,但是它们的目的、本质是完全不一样的。 策略模式是封装一系列彼此独立、复杂多变、可替换的实现方式。状态模式是把对象的内在状态的变化封装到不同的状态对象里,状态变化时,其行为也随之改变。 定义 当一个对象的内...原创 2019-02-14 14:22:58 · 230 阅读 · 0 评论 -
设计模式整理(6) 策略模式
学习《Android 源码设计模式解析与实践》系列笔记 介绍 通常如果一个问题有多种解决方案时,我们会根据不同的场景选择不同的解决方案。而最简单的实现,是利用 if-else 或者 switch-case。但是这样实现的代码耦合性太高、代码臃肿,维护成本大。策略模式能很好的解决这些问题。 定义 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使...原创 2019-02-13 14:19:33 · 146 阅读 · 0 评论 -
设计模式整理(5) 工厂模式
学习《Android 源码设计模式解析与实践》系列笔记 介绍 工厂模式属于创建型设计模式之一,是一种结构简单的设计模式,也是应用广泛的设计模式。 工厂模式是用来实例化对象的模式,是用工厂方法代替 new 操作的一种模式。这种替代可以给系统带来更好的可扩展性。 定义 定义一个用于创建对象的接口,让子类决定实例化哪个类。 使用场景 在任何需要生产复杂对象的地方,都可以使用工厂模式。复杂对象适合使用...原创 2019-02-12 17:46:40 · 244 阅读 · 0 评论 -
设计模式整理(4) 原型模式
学习《Android 源码设计模式解析与实践》系列笔记 介绍 原型模式是一种创建型的模式。 原型模式就是用户从一个样板实例对象中复制出一个内部属性一致的对象,这个过程也可以称作“克隆”。 原型模式多用于创建复杂的或者构造耗时的实例。 定义 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 使用场景 类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等,通过原型拷贝避免这些...原创 2019-02-12 17:45:43 · 173 阅读 · 0 评论 -
设计模式整理(3) Builder 模式
学习《Android 源码设计模式解析与实践》系列笔记 介绍 Builder 模式是一步一步创建一个复杂对象的创建型模式。用户不需要知道构建过程中的实现细节,便可构建出复杂的对象模型。该模式将构建复杂对象的过程和它的部件解耦,使得构建过程和部件表示隔离开来。 定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以构建不同的表示。 使用场景 相同的方法,不同的执行顺序,产生不同的时间...原创 2019-02-12 17:44:35 · 144 阅读 · 0 评论 -
设计模式整理(2) 单例模式
学习《Android 源码设计模式解析与实践》系列笔记 什么是单例 单例模式是应用最广,也是最容易理解的模式之一。 在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的一个类只有一个实例。即一个类只有一个对象实例。 定义 《设计模式》(艾迪生维斯理, 1994)中的定义:“保证一个类仅有一个实例,并提供一个访问它的全局访问点。” Java 中单例模式定义:“一...原创 2019-02-12 17:41:14 · 130 阅读 · 0 评论 -
设计模式整理(1) 代理模式
学习《Android 源码设计模式解析与实践》系列笔记 介绍 生活中,存在很多代理模式的影子。 例如我们想要买一辆二手车,如果自己去找,可能会在沟通和手续上花费较多的时间和精力。如果通过中介,我们只需要告诉他我们的诉求,让中介代理我们去寻找车源,办理过户手续,我们最后再付款提车就可以了。 例如我们想邀请一位明星参加某个活动,但是一般人是很难直接联系到明星本人的,一般是先联系明星的经纪人,经纪人...原创 2019-02-12 17:36:24 · 175 阅读 · 0 评论 -
设计模式整理(10) 适配器模式
学习《Android 源码设计模式解析与实践》系列笔记 介绍 经常会碰到两个没有关系的类型之间需要进行交互,但是双方又都不想做出修改,这种尴尬的情况下,可以增加一个 Adapter 的角色,进行两个不同类型的接口的兼容。 例如:读卡器是作为内存卡和笔记本之间的适配器。将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。 适配器模式属于结构型模式。 定义 适配器模式把一个...原创 2019-02-18 11:08:17 · 152 阅读 · 0 评论 -
设计模式整理(9) 观察者模式
学习《Android 源码设计模式解析与实践》系列笔记 介绍 观察者模式是使用率非常高的模式,最常用在 GUI 系统、订阅-发布系统。观察者模式的重要作用是使被观察者和观察者间的解耦,使它们间的依赖性变小。 观察者模式属于行为型模式。 定义 观察者设计模式定义了对象间的一种一对多的组合关系,以便一个对象的状态发生变化时,所有依赖于它的对象都得到通知并自动刷新。 使用场景 关联场景,需要注意的...原创 2019-02-15 14:51:24 · 155 阅读 · 0 评论 -
设计模式整理(12) 中介者模式
学习《Android 源码设计模式解析与实践》系列笔记 介绍 生活中经常能听到或接触到各种“中介者”,比如买房子或者租房,可能会通过房屋中介;买二手车会有二手车中介;找工作也可以通过中介。 中介者模式属于行为型模式。 定义 中介者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用。从而使它们可以松散耦合。 使用场景 当对象之间的交互操作很多且每个对象的行为操作都依赖彼此时,为防止...原创 2019-03-01 14:00:35 · 210 阅读 · 0 评论