美文网首页Android知识
设计模式之创建型模式学习

设计模式之创建型模式学习

作者: jiantaocd | 来源:发表于2017-09-29 23:23 被阅读14次
图片来至百度搜索

内容来源:《设计模式-可复用面向对象软件基础》、网络。
本文主要是记录概念,加深理解,方便查阅。

AbstractFactory(抽象工厂)

提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

适用性

  • 一个系统要独立于它的产品的创建、组合和表示时。
  • 一个系统要由多个产品系列中的一个来配置时。
  • 当你要强调一系列相关的产品对象的设计以便进行联合使用时。
  • 当你提供一个产品类库,而只想显示它们的接口而不是实现时。

结构图

abs-factory

优缺点

  • 它分离了具体的类。
  • 它使得易于交换产品系列。
  • 有利于产品的一致性。
  • 难以支持新种类的产品。

伪代码实例

小结

Builder

将一个复杂对象的创建与它的表示分离,使得同样的构建过程可以创建不同的表示。

适用性

  • 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
  • 当构建过程必须允许被构建的对象有不同的表示时。

结构图

builder

优缺点

  • 它使你可以改变一个产品的内部表示。
  • 它将构造代码和表示代码分开。
  • 它使你可对构造过程进行更精细的控制。

相关源码实现

  • okhttpClient类
  • Android系统相关Builder

FactoryMethod(工厂方法)

定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。

适用性

  • 当一个类不知道它所必须创建对象的类的时候。
  • 当一个类希望由它的子类来指定它所创建的对象的时候。
  • 当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。

结构图

factory-method

优缺点

  • 工厂方法不再将于特定应用有关的类绑定到你的代码中。代码仅处理Product接口。

ProtoType(原型)

用原型指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

适用性

  • 当要实例化的类是在运行时刻执行的,例如,通过动态加载;
  • 为了避免创建一个与产品类层级平行的工厂类层级时。
  • 当一个类的实例只能有几个不同状态组合中的一种时。建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便一些。

结构图

prototype

优缺点

  • 运行时刻增加或删除产品
  • 改变值以指定新对象
  • 改变结构以指定新对象
  • 减少子类的创建
  • 用类动态配置应用

Singleton(单例)

保证一个类只有一个实例,并提供一个访问它的全局访问点。

适用性

  • 当类只能有一个实例而客户可以从一个众所周知的访问点访问它
  • 当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。

结构图

singleton

优缺点

  • 对唯一实例的受控访问
  • 缩小名空间
  • 允许对操作和表示的精化

创建型模式的讨论

创建模式就是对对象实例化的抽象,隐藏创建过程、细节,将实例化工作委托给另一个对象。

模式伪代码

相关文章

  • 《设计模式之美》- 23种设计模式

    学习《设计模式之美》笔记。 23 种经典设计模式共分为 3 种类型,分别是创建型、结构型和行为型 创建型模式 创建...

  • 23种设计模式总结一

    23 种经典设计模式共分为 3 种类型,分别是创建型、结构型和行为型。 一、创建型设计模式 创建型设计模式包括:单...

  • Java设计模式——生成器模式

    Java设计模式之生成器模式 回顾 这期继续跟大家聊下创建型的设计模式,如果想了解其他创建类的设计模式有哪些,可以...

  • 简单工厂模式

    Android进阶之设计模式 简单工厂模式 简单工厂模式(又叫作静态工厂方法模式), 其属于创建型设计模式,但并不...

  • 设计模式之活学活用的工厂模式

    设计模式之活学活用的工厂模式 工厂模式简介 工厂模式是我们日常开发工作中经常使用的设计模式,它属于创建型设计模式,...

  • 建造者设计模式-Builder design pattern

    建造者设计模式是创建型设计模式的一种。创建型设计模式处理对象创建的问题。 建造者设计模式,用来构建需要经过若干个建...

  • 创建型设计模式总结

    创建型设计模式总结 Intro 前面几篇文章已经把创建型设计模式都介绍了,来做一个简单的总结。 创建型设计模式,就...

  • 单例模式

    单例 单例模式,是一种设计模式,属于创建型设计模式,还有一种创建型设计模式,工厂模式。设计模式总共有23种,三大类...

  • 设计模式简单总结(待完善)

    设计模式简单总结 设计模式可以分为:创建型,结构型,行为型三种模式。 1 创建型模式 1.1 单例模式 用来指定某...

  • 设计模式归纳

    一、设计模式的分类 23 种经典的设计模式分为三类:创建型、结构型、行为型。 1.创建型设计模式主要解决“对象的创...

网友评论

    本文标题:设计模式之创建型模式学习

    本文链接:https://www.haomeiwen.com/subject/babwextx.html