程序亦非猿

菩提本无树,程序亦非猿。


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 友链

  • 搜索

蝇量模式

发表于 2016-08-01 | 更新于: 2021-02-08 | 分类于 Architecture , 设计模式 | 阅读次数:
字数统计: 155 | 阅读时长 ≈ 1 分钟

设计模式专题系列: 设计模式

蝇量模式

如果想让某个类的实例能用来提供许多”虚拟实例”,就使用蝇量模式。

用途:

  1. 当一个类有许多的实例,而这些实例能被同一个方法控制的时候,我们就可以使用蝇量模式.

优点:

  1. 减少运行时对象实例的个数,节省内存.
  2. 将许多”虚拟”对象的状态集中管理.

缺点:

  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 分钟

设计模式专题系列: 设计模式

工厂模式

工厂模式分两种模式:

  1. 工厂方法
  2. 抽象工厂

简单工厂

使用new Xxx()创建对象非常脆弱,缺乏弹性,耦合度高。

当具体类需要新增或删除的时候,就必须修改这段代码,非常容易出错,难以维护和更新。

所以需要把创建对象的方法封装起来,用“工厂”来负责创建对象。

定义Factory:

使用:

看起来可能只是把代码挪到了另外一个地方,但是其实有不少好处。

阅读全文 »
1…345…15
程序亦非猿

程序亦非猿

144 日志
11 分类
101 标签
GitHub
0%
© 2015 — 2021 程序亦非猿 | Site words total count: 122.7k
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.4
人次 次