随笔分类 - 【008】设计模式
摘要:前言 桥接模式看到名字就很容易理解,就是用一座桥将两个类连接起来,为什么要这么做是它的关键。当我们两个抽象对象相互之间有联系,且两个抽象对象的具体实现有组合的关系,那么为了减少类的数量以及为了方便后续的扩展,使用桥接模式就非常有必要。 桥接模式基础:https://www.cnblogs.com/l
阅读全文
摘要:前言 享元模式听名字其实很少见,但是其实这个模式非常简单,所以用到的地方都不知道自己用到了。 这个模式用一句话描述就是,将已经创建过的对象保存起来,方便下次使用,减少重复对象的创建。(你可以简单的理解为缓存,嘻嘻) 由于享元模式很简单,这里就举一个实际的例子来说明。 享元模式基础:https://w
阅读全文
摘要:前言 对于很多设计模式都是后期优化,或者是后期版本迭代,为了适应原来的业务进行扩展的时候使用的,适配器模式就是其中的一种。适配器模式其实很容易理解,就和名字一样它就是一个适配器,将原本两个无法调用和兼容的类通过它就能行。类似生活中很多的电源适配器或者是转接口等。 适配器模式基础:https://ww
阅读全文
摘要:前言 装饰者模式在实际中应用也很多,装饰比继承要灵活,但是同时装饰的过多也会导致业务上面看上去难以理解,所以合理的使用很重要。对于装饰者模式来说还有一个比较重要的点就是抽象,抽象出来的内容很重要,决定了后续装饰的难度。 装饰模式基础:https://www.cnblogs.com/linkstar/
阅读全文
摘要:前言 对于原型模式比较简单,其实可能我们听到的比较少,但是在实际中其实用到的地方你没有注意。 原型模式基础点:https://www.cnblogs.com/linkstar/p/7810951.html 原型模式用一句话说就是,通过拷贝来创建复杂对象来减少资源开销。 在循环体中产生大量对象的时候比
阅读全文
摘要:前言 对于单例模式我们其实已经非常熟悉了,如果不熟悉的话,那你随便百度一下就能看的一大堆关于单例模式的介绍。单例模式的实现是当前设计模式中可以说实现最简单的一种模式了,也很容易理解,但是其实单例模式并非你想的那么简单哦。 下面就从几个实际的源码中来看看,单例模式在什么样的情况下会被使用。 单例模式(
阅读全文
摘要:前言 工厂模式其实在许多地方都有体现,是常见的一种设计模式。用一句话总结就是,当我们需要创建一些对象的时候,而创建的对象比较复杂或者同类型比较多,就可以使用它。 在我们看源码的时候,有的时候看见XXXFactory那么它就使用了工厂模式。 工厂模式的基础知识点: 简单工厂:https://www.c
阅读全文
摘要:前言 之前有一段时间在刷设计模式,对于设计模式来说,所有的基础原理都已经清楚了,之前也总结了学习设计模式的方法和设计模式的用法如下: https://www.cnblogs.com/linkstar/p/7859980.html 后期也说了,会有后续的更新,我觉得现在这个时候应该差不多了,经过一段时
阅读全文
摘要:前言 经过大约两个月的磨蹭,我终于是把设计模式打下来了。 具体详细在:http://www.cnblogs.com/linkstar/category/1087887.html 那么当我学习完成之后,所想到的第一件事,也就是你们标题上面所看到的一样 学设计模式到底有啥用啊?在我学习完成之后为了写这个
阅读全文
摘要:访问者模式(Visitor) 设计模式使用的例子https://github.com/LinkinStars/DesignPatternsAllExample 一、定义 提供一个作用于某对象结构中的各元素的操作表示,它使得可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 二、结构 Visi
阅读全文
摘要:原型模式(Prototype) 设计模式使用的例子https://github.com/LinkinStars/DesignPatternsAllExample 一、定义 使用原型实例指定创建对象的种类,并且通过拷贝这些原 型创建新的对象。原型模式是一种对象创建型模式。 二、结构 Prototype
阅读全文
摘要:备忘录模式(Memento) 设计模式使用的例子https://github.com/LinkinStars/DesignPatternsAllExample 一、定义 在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态 二、结构 Or
阅读全文
摘要:中介者模式(Mediator) 设计模式使用的例子https://github.com/LinkinStars/DesignPatternsAllExample 一、定义 用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以相对独立地改变它们之间的交互
阅读全文
摘要:解释器模式(Interpreter) 设计模式使用的例子https://github.com/LinkinStars/DesignPatternsAllExample 一、定义 定义一个语言的文法,并且建立一个解释器来解释该语言中的句子,这里的“语言”是指使用规定格式和语法的代码。 二、结构 Abs
阅读全文
摘要:享元模式(Flyweight) 设计模式使用的例子https://github.com/LinkinStars/DesignPatternsAllExample 一、定义 运用共享技术有效地支持大量细粒度对象的复用。 系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。
阅读全文
摘要:职责链模式(Chain of Responsibility) 设计模式使用的例子https://github.com/LinkinStars/DesignPatternsAllExample 一、定义 避免将请求发送者与接受者耦合在一起,让多个对象都有机会接受请求,将这些对象连成一条链,并且沿着这条
阅读全文
摘要:建造者模式(Builder) 设计模式使用的例子https://github.com/LinkinStars/DesignPatternsAllExample 一、定义 将一个复杂对象的构建与它的表示相分离,使得同样的构建过程可以创建不同的表示。 二、结构 Builder(抽象建造者):为创建一个产
阅读全文
摘要:桥接模式(Bridge) 设计模式使用的例子https://github.com/LinkinStars/DesignPatternsAllExample 一、定义 将抽象部分与其实现部分分离,使得他们都可以独立地变化。它是一种对象结构型模式,又称为接口模式。 二、结构 Abstraction(抽象
阅读全文
摘要:代理模式(Proxy) 设计模式使用的例子https://github.com/LinkinStars/DesignPatternsAllExample 一、定义 给某一个对象提供一个代理,并由代理对象控制对原对象的引用。 二、结构 Subject(抽象主题角色):声明真实主题和代理主题的共同接口,
阅读全文
摘要:状态模式(state) 设计模式使用的例子https://github.com/LinkinStars/DesignPatternsAllExample 一、定义 允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。 二、结构 Context(环境类):定义客户感兴趣的接口。维护一个C
阅读全文