设计模式
闲人不梦卿
涂歌郎朗巷舞妖娆万事求真谛,兵贵神速学贵谨严人生得至理
展开
-
设计模型之状态模式含UML完整实例)
设计模型之状态模式1. 状态模式 什么是状态模式?以电梯为例。电梯的状态有停止、运行、开门和关门等状态。而且每个状态还都要有特定的行为,比如在开门的状态下,电梯只能关门,而不能运行;在关门状态下,电梯可以运行、开门等。用一张表来表示这个关系:电梯开门关门运行停止开门状态×√××关门状态√×√×运行状态×××√停止状态√...原创 2020-04-18 21:22:02 · 2192 阅读 · 0 评论 -
设计模型之责任链模式含UML完整实例)
设计模型之责任链模式1. 责任链模式1.1 定义与特点 责任链(Chain of Responsibility)模式的定义:为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。 注意:责任链模式也叫职责链模式。 在责任链模式中,客户只需要将请求发送到责任链上即可...原创 2020-04-16 15:32:46 · 4076 阅读 · 0 评论 -
设计模型之命令模式含UML完整实例)
设计模型之命令模式1. 命令模式1.1 定义与特点 命令(Command)模式的定义如下:将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行储存、传递、调用、增加与管理。 命令模式的主要优点如下:降低系统的耦合度。命令模式能将调用操作的对象与实现该操作的对象解耦。增加或删除命令非常方便。采用命令模式增加与...原创 2020-04-16 10:49:39 · 2473 阅读 · 0 评论 -
设计模型之策略模式含UML完整实例)
设计模型之策略模式1. 策略模式1.1 定义与特点1.2 模式的结构1.3 问题由来1.4 解决思路1.5 UML类图1.6 解决方案原创 2020-04-15 13:52:30 · 1847 阅读 · 0 评论 -
设计模型之模板方法模式含UML完整实例)
设计模型之模板方法模式1. 模板方法模式1.1 定义与特点 定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。它是一种类行为型模式。 该模式的主要优点如下:它封装了不变部分,扩展可变部分。它把认为是不变部分的算法封装到父类中实现,而把可变部分算法由子类继承实现,便于子类继续扩展。它在父类中提取了公共的部分代码...原创 2020-04-15 09:25:49 · 2083 阅读 · 0 评论 -
设计模型之组合模式含UML完整实例)
设计模型之组合模式1. 组合模式1.1 定义与特点 有时又叫作部分-整体模式,它是一种将对象组合成树状的层次结构的模式,用来表示“部分-整体”的关系,使用户对单个对象和组合对象具有一致的访问性。 组合模式的主要优点有:组合模式使得客户端代码可以一致地处理单个对象和组合对象,无须关心自己处理的是单个对象,还是组合对象,这简化了客户端代码;更容易在组合体内加入新的对象,客户端不会因为...原创 2020-04-14 23:45:42 · 4093 阅读 · 0 评论 -
设计模型之享元模式含UML完整实例)
设设计模型之享元模式1. 享元模式1.1 定义与特点 运用共享技术来有効地支持大量细粒度对象的复用。它通过共享已经存在的又橡来大幅度减少需要创建的对象数量、避免大量相似类的开销,从而提高系统资源的利用率。 享元模式的主要优点是:相同对象只要保存一份,这降低了系统中对象的数量,从而降低了系统中细粒度对象给内存带来的压力。 享元模式的主要缺点是:为了使对象可以共享,需要将一些...原创 2020-04-14 09:50:57 · 1025 阅读 · 0 评论 -
设计模型之外观模式(含UML完整实例)
设设计模型之外观模式1. 外观模式1.1 定义与特点 是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。 外观(Facade)模式是“迪米特法则”的典型应用,它有以下主要优点:降低了子系统与客户端之间的耦合度,使得子系统的变化...原创 2020-04-13 21:24:17 · 2381 阅读 · 1 评论 -
设计模型之装饰者模式(含UML完整实例)
设设计模型之装饰者模式1. 装饰者模式1.1 定义与特点 装饰(Decorator)模式的定义:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。(有点像代理模式的功能,代理对象提供了与真实对象相同的方法,并可以扩展真实对象的功能) 装饰(Decorator)模式的主要优点有:采用装饰模式扩展对象的功能比采用继承方式更加灵活...原创 2020-04-13 20:40:55 · 2457 阅读 · 0 评论 -
设计模型之桥接模式(含UML完整实例)
设设计模型之桥接模式1. 桥接模式1.1 定义与特点 桥接模式(Bridge Pattern),将抽象部分与它的实现部分分离,使它们都可以独立地变化。更容易理解的表述是:实现系统可从多种维度分类,桥接模式将各维度抽象出来,各维度独立变化,之后可通过聚合,将各维度组合起来,减少了各维度间的耦合。1.2 模式的结构 桥接(Bridge)模式包含以下主要角色:抽象化(Abstracti...原创 2020-04-12 19:04:30 · 2261 阅读 · 0 评论 -
设计模型之适配器模式(含UML完整实例)
设设计模型之适配器模式1.适配器模式1.1 定义与特点 适配器模式(Adapter)的定义如下:使用一个已经存在的类,而他的接口不符合我们的需求。这个时候我们本着开闭原则,要创建一个既符合我们需求(加入独立的或不兼容的接口功能)又实现了已存在的接口的类。适配器模式分为类结构型模式和对象结构型模式两种,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对...原创 2020-04-11 20:39:28 · 8646 阅读 · 0 评论 -
设计模型之代理模式(含UML完整实例)
设计模型之代理模式1.代理模式1.1 定义与特点 代理模式的定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。 代理模式的主要优点有:代理模式在客户端与目标对象之间起到一个中介作用和保护目标对象的作用;代理对象可以扩展目标对象的功能;代理模式能将客户端与目标对象分离,在一定程度...原创 2020-04-11 16:50:38 · 3638 阅读 · 0 评论 -
设计模型之创建者模式(含UML完整实例)
设计模型之创建者模式1.创建者模式1.1 定义与特点1.2 模式的结构1.3 UML类图1.4 问题由来 大家知道一辆车是很复杂的,有发动机、变速器、轮胎、挡风玻璃、雨刮器、气缸、方向盘等等无数的部件。 用户买车的时候不可能一个一个去指定我要那种类型的变速器、我要一个多大的轮胎、我需要长宽高多少的车,这是不现实的 通常用户只会和销售谈我需要什么什么样的类型的车,马力要不要强劲...原创 2020-04-11 15:26:08 · 1625 阅读 · 0 评论 -
设计模型之抽象工厂模式(含UML完整实例)
设计模型之抽象工厂模式1.抽象工厂模式1.1 定义与特点 用来生产不同产品族的全部产品。(对于增加新的产品,无能为力;支持增加产品族)。 使用抽象工厂模式一般要满足以下条件: 1).系统中有多个产品族,每个具体工厂创建同一族但属于不同等级结构的产品。 2).系统一次只可能消费其中某一族产品,即同族的产品一起使用。 抽象工厂模式除了具有工厂方法模式的优点外,其他主要优点如下:...原创 2020-04-09 18:52:01 · 6737 阅读 · 1 评论 -
设计模型之工厂模式(含UML完整实例)
设计模型之工厂模式1.工厂模式1.1 定义 一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。 工厂方法模式的主要优点有:用户只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程;在系统增加新的产品时只需要添加具体产品类和对应的具体工厂类,无须对原工厂进行任何修改,满足开闭原则; 工厂方法模式的缺点是:每增加一个产品就要增加一个具体产...原创 2020-04-09 13:27:01 · 4612 阅读 · 0 评论 -
设计模型之原型模式(含UML完整实例)
设计模型之原型模式1.原型模式1.1 定义 原型(Prototype)模式的定义如下:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里,原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效,根本无须知道对象创建的细节。例如,Windows 操作系统的安装通常较耗时,如果复制就快了很多。在生活中复制的例子非常多,这里不一一列举了。1.2 模...原创 2020-04-08 19:24:19 · 4266 阅读 · 0 评论 -
设计模型之单例模式(含UML完整实例)
设计模型之单例模式1.单例模式1.1 定义 单例(Singleton)模式的定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式。例如,Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造成内存资源的浪费,或出现各个窗口显示内容的不一致等错误。 在计算机系统中,还有 Windows 的回收站、操作系统中的文件系统、多线程中的线程池、显卡的驱动程序...原创 2020-04-07 15:57:32 · 5851 阅读 · 0 评论