设计模式
欧拉兔
vfrvwr
展开
-
设计模式(结构型模式)--适配器模式
1.定义 将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 2.介绍 适配器模式属于结构型模式。 适配器模式有类适配器模式和对象适配器模式这两种。 生活中的手机充电器就是一个适配器的例子,手机一般都是在5V的电压下进行充电,但是外部的电压都是220V,那怎么办,这就需要充电器去适配了,将220V的电压转换为5V。 实际开发中,...原创 2019-05-28 12:37:52 · 128 阅读 · 0 评论 -
设计模式(行为型模式)-备忘录模式
1.定义 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可以将该对象恢复到先前保存的状态。 2.介绍 备忘录模式属于行为型模式。 备忘录模式比较适合用于功能复杂,但是需要维护和纪录历史的地方,或者是需要保存一个或者多个属性的地方;在未来某个时刻需要时,将其还原到原来纪录的状态。 3.UML类 角色说明: Originator(发起人角色):负...原创 2019-06-01 17:03:54 · 160 阅读 · 0 评论 -
设计模式(建造者模式)-建造者模式
1.定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 2.介绍 建造者模式属于创建型模式。 建造者模式主要用来创建复杂的对象,用户可以不用关心其建造过程和细节。 例如:当要组装一台电脑时,我们选择好CPU、内存、硬盘等等,然后交给装机师傅,装机师傅就把电脑给组装起来,我们不需要关心是怎么拼装起来的。 3.UML类图 角色说明: Product(产品...原创 2019-05-29 17:15:29 · 339 阅读 · 0 评论 -
设计模式(行为型模式)-访问者模式
1.定义 封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。 2.介绍 访问者模式属于行为型模式。 访问者模式是一种将数据结构和数据操作分离的设计模式。 访问者模式比较复杂,而且实际使用的地方并不多。 访问者模式适用于数据结构稳定的元素操作上,一旦数据结构易变,则不适用。 3.UML类图 角色说明: Visitor(抽象访问者...原创 2019-06-01 19:50:42 · 149 阅读 · 0 评论 -
设计模式(创建型模式)-工厂方法模式
1.定义 定义一个用于创建对象的接口,让子类决定实例化哪个类。 2.介绍 工厂方法模式属于创建型模式。 工厂方法模式主要用来创建复杂的对象,简单对象能够使用new来创建就不用工厂方法模式来创建了。 3.UML类图 角色说明: Product(抽象产品类):要创建的复杂对象,定义对象的公共接口。 ConcreteProduct(具体产品类):实现Product接口。 Factor...原创 2019-05-29 18:22:32 · 129 阅读 · 0 评论 -
设计模式(创建型模式)-简单工厂模式
1.定义 定义一个用于创建对象的接口,让子类决定实例化哪个类。 2.介绍 简单工厂模式属于创建型模式。 简单工厂模式又叫做静态工厂方法模式 3.UML类图 角色说明: Product(抽象产品类):要创建的复杂对象,定义对象的公共接口。 ConcreteProduct(具体产品类):实现Product接口。 Factory(工厂类):返回ConcreteProduct实例。 ...原创 2019-05-29 18:36:36 · 124 阅读 · 0 评论 -
设计模式(创建型模式)-抽象工厂模式
1.定义 为创建一组相关或者相互依赖的对象提供一个接口,而无需指定它们的具体类。 2.介绍 抽象工厂模式属于创建型模式。 工厂方法模式每个工厂只能创建一种类型的产品,而抽象工厂模式则能够创建多种类型的产品。 例如:硬盘工厂只生产硬盘这种产品,而电脑工厂则组合不同的硬盘、内存、CPU等生产出电脑来。 3.UML类图 角色说明: AbstractProduct(抽象产品类):定义产品...原创 2019-05-29 19:56:12 · 195 阅读 · 0 评论 -
设计模式(行为型模式)-责任链模式
1.定义 一个请求沿着一条“链”传递,直到该“链”上的某个处理者处理它为止。 2.介绍 责任链模式属于行为型模式。 多个对象中,每个对象都持有下一个对象的引用,这就构成了链这种结构。 一个请求通过链的头部,一直往下传递到链上的每一个结点,直到有某个结点对这个请求做出处理为止,这就是责任链模式。 责任链模式一般分为处理者与请求者。具体的处理者分别处理请求者的行为。 3.UML类图 ...原创 2019-05-29 20:18:58 · 172 阅读 · 0 评论 -
设计模式(行为型模式)-状态模式
1.定义 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 2.介绍 状态模式属于行为型模式 状态模式中的行为是由状态来决定的,即不同状态下的行为也不同。 状态模式的结构跟策略模式的几乎一样,但其本质是不一样的。策略模式中的行为是彼此独立,能够相互替换的;而状态模式的行为是平行的,,不同状态下其行为也是不一样的,具有不可替换性。 3.UML类图 角色说明: ...原创 2019-05-29 20:46:55 · 210 阅读 · 0 评论 -
设计模式(行为型模式)-命令模式
1.定义 将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录日志,可以提供命令的撤销和恢复功能。 2.介绍 命令模式属于行为型模式。 我们遇到最常见的命令模式就是关机操作了,我们只需点击一下关机按钮就可以了,至于计算机是如何关机的,我们不需要关心其实现细节。 3.UML类图 角色说明: Command(命令角色):接口或者抽象类,定义要执行的命令。 ...原创 2019-06-01 14:57:40 · 138 阅读 · 0 评论 -
设计模式(行为型模式)-迭代器模式
1.定义 提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节。 2.介绍 迭代器模式属于行为型模式。 迭代器(Iterator)模式,又叫做游标(Cursor)模式。 3.UML类图 角色说明: Iterator(迭代器接口):负责定义、访问和遍历元素的接口。 ConcreteIterator(具体迭代器类):实现迭代器接口。 Aggregate(容器接口):...原创 2019-06-01 13:51:20 · 126 阅读 · 0 评论 -
设计模式(结构型模式)-享元模式
1.定义 使用共享对象可有效地支持大量的细粒度的对象. 2.介绍 享元模式属于结构型模式。 享元模式是池技术的重要实现方式,它可以减少重复对象的创建,使用缓存来共享对象,从而降低内存的使用。 细粒度的对象其状态可以分为两种:内部状态和外部状态。 内部状态:对象可共享出来的信息,存储在享元对象内部并且不会随环境的改变而改变。 外部状态:对象依赖的一个标记是随环境改变而改变的,并且不可共享...原创 2019-06-01 11:43:26 · 139 阅读 · 0 评论 -
设计模式(结构型模式)--外观模式
1.定义 要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。外观模式提供一个高层次的接口,使得子系统更易于使用。 2.介绍 外观模式属于结构型模式。 外观模式也叫门面模式。 通常我们对API进行封装,都会用到外观模式,只是我们可能不知道而已。外观模式通过一个外观类使得整个系统的结构只有一个统一的高层接口,这样能降低用户的使用成本。 3.UML类图 角色说明: Faca...原创 2019-05-28 13:37:28 · 126 阅读 · 0 评论 -
设计模式(结构型模式)-装饰者模式
1.定义 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。 2.介绍 装饰者模式属于结构型模式。 装饰者模式在生活中应用实际上也非常广泛,一如一间房,放上厨具,它就是厨房;放上床,就是卧室。 通常我们扩展类的功能是通过继承的方式来实现,但是装饰者模式是通过组合的方式来实现,这是继承的替代方案之一。 3.UML类图 角色说明: Component(...原创 2019-05-28 16:19:56 · 230 阅读 · 0 评论 -
设计模式(行为型模式)-观察者模式
1.定义 定义对象间的一种一个对多的依赖关系,当一个对象的状态发送改变时,所以依赖于它的对象都得到通知并被自动更新。 2.介绍 观察者属于行为型模式。 观察者模式又被称作发布/订阅模式。 观察者模式主要用来解耦,将被观察者和观察者解耦,让他们之间没有没有依赖或者依赖关系很小。 3.UML类图 角色说明: Subject(抽象主题):又叫抽象被观察者,把所有观察者对象的引用保存到一...原创 2019-05-28 17:58:42 · 179 阅读 · 0 评论 -
设计模式(行为型模式)-模板方法模式
1.定义 定义一个操作中的算法框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。 2.介绍 模板方法模式属于行为型模式。 模板方法模式主要是用来定义一套流程下来的固定步骤,而具体的步骤实现则可以是不固定的。 3.UML类图 角色说明: AbstractClass(抽象类):,定义了一整套算法框架。 ConcreteClass(具体实现类)...原创 2019-05-28 19:27:58 · 143 阅读 · 0 评论 -
设计模式(结构型模式)-代理模式
1.定义 为其他对象提供一种代理以控制这个对象的访问。 2.介绍 代理模式属于结构型模式。 代理模式也叫委托模式。 生活中,比如代购、打官司等等,实际上都是一种代理模式。 3.UML类图 角色说明: Subject(抽象主题类):接口或者抽象类,声明真实主题与代理的共同接口方法。 RealSubject(真实主题类):也叫做被代理类或被委托类,定义了代理所表示的真实对象,负责具...原创 2019-05-28 21:37:57 · 141 阅读 · 0 评论 -
设计模式(创建型模式)-单例模式
1.定义 确保某个类只有一个实例,并且自行实例化并向整个系统提供这个实例。 2.介绍 单例模式属于创建类模式。 单例模式有以下特点: 1. 单例类只能有一个实例。 2. 单例类必须自己创建自己的唯一实例。 3. 单例类必须给所有其他对象提供这一实例。 3.实现 3.1 饿汉式 //单例类. public class Singleton { priva...原创 2019-05-29 00:51:38 · 118 阅读 · 0 评论 -
设计模式(结构型模式)-组合模式
1.定义 将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。 2.介绍 组合模式属于结构型模式。 组合模式有时叫做部分—整体模式,主要是描述部分与整体的关系。 组合模式实际上就是个树形结构,一棵树的节点如果没有分支,就是叶子节点;如果存在分支,则是树枝节点。 我们平时遇到的最典型的组合结构就是文件和文件夹了,具体的文件就是叶子节点,而...原创 2019-06-01 00:33:42 · 183 阅读 · 0 评论 -
设计模式(结构型模式)-桥接模式
1.定义 将抽象部分与实现部分分离,使它们都可以独立的变化。 2.介绍 桥接模式属于结构型模式。 举个生活中的例子,一条数据线,一头USB接口的可以连接电脑、充电宝等等,另一头可以连接不同品牌的手机,通过这条数据线,两头不同的东西就可以连接起来,这就是桥接模式。 3.UML类图 角色说明: Abstraction(抽象化角色):一般是抽象类,定义该角色的行为,同时保存一个对实现化角...原创 2019-06-01 02:00:49 · 118 阅读 · 0 评论 -
设计模式(行为型模式)-策略模式
1.定义 定义一系列的算法,把每一个算法封装起来,并且使它们可相互替换。策略模式模式使得算法可独立于使用它的客户而独立变化。 2.介绍 策略模式属于行为型模式。 策略模式提供了一组算法给客户端调用,使得客户端能够根据不同的条件来选择不同的策略来解决不同的问题。 如排序算法,可以使用冒泡排序、快速排序等等。 3.UML类图 角色说明: Stragety(抽象策略类):抽象类或接口,...原创 2019-05-29 21:05:22 · 129 阅读 · 0 评论