设计模式
文章平均质量分 78
西电小西
这个作者很懒,什么都没留下…
展开
-
UML类图几种关系的总结
在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1.泛化(Generalization)【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种.【箭头指向】转载 2013-08-04 10:56:55 · 689 阅读 · 0 评论 -
设计模式之职责链模式
1.职责链模式的意图通过给多个对象处理请求的机会,以解除请求的发送者与接收者之间的耦合。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。(客户端不必事先知道对象集合中哪个对象可提供自己需要的服务)2.职责链模式举例 比如,班里想申请一个教室举办元旦晚会,文艺委员不能自作主张使用某个教室,于是找到班长,班长要做的就是写申请,向负责人员申请,负责原创 2013-09-03 11:12:35 · 633 阅读 · 0 评论 -
设计模式之调停者模式
1.调停者模式的意图 定义一个对象(调停者对象),封装一组对象(同事对象)的交互,从而降低同事对象间的耦合度,避免了同事对象间的显示引用,并且可以独立地改变对象的行为。2.为什么需要调停者 如下图所示,这个示意图中有大量的对象,这些对象既会影响别的对象,又会被别的对象所影响,因此常常叫做同事(Colleague)对象。这些同事对象通过彼此的相互作用形成原创 2013-09-02 11:37:13 · 707 阅读 · 0 评论 -
设计模式之代理模式
1.代理模式的意图 通过提供一个代理或占位符来控制对该对象的访问;2.代理模式解读 1)代理的思路及原理: 由上图可知,通过增加代理来解耦A与C之间的调用,这样可以封装原来C调用A的一些相关细节,转换成C直接调用B中封装后的代理方法,则等同于访问A。 2)代理模式与外观模式的区别 代理模式与外观模式的侧原创 2013-09-03 10:19:05 · 643 阅读 · 0 评论 -
设计模式之享元模式
1.享元模式的意图 通过共享来有效地支持大量细粒度的对象。2.享元模式的特点 复用我们内存中已存在的对象,降低系统创建对象实例的性能消耗。3.享元模式的应用前后对比 我们来给出个简单的享元模式的应用前后的对比图,大概我们就知道享元模式的重要作用了。 我们这里以绘制一个有样式的字体来说明吧,有的时候我们想绘制一个纯色的文原创 2013-09-03 12:34:44 · 653 阅读 · 0 评论 -
设计模式之工厂模式
总结1.使用工厂模式的两种情况: 1)在编码时不能预见需要创建哪种类的实例。 2)系统不应依赖于产品类实例如何被创建、组合和表达的细节。 3)不想让客户代码决定实例化哪个类时。2.工厂方法模式和抽象工厂模式关系 1)抽象工厂是工厂方法的集合; 2)抽象工厂模式用来创建“一族”对象,而工厂方法用来创建一个对象。3.工厂方法模式的意图:定义一原创 2013-09-04 12:13:22 · 722 阅读 · 0 评论 -
设计模式之创建者模式
1.什么是创建者模式(构建者模式)? 创建者模式类似于一个步骤基本固定,但是每个步骤中的具体形式却又可以变化的这类对象的创建。其中,创建者负责构建一个对象的各个部分,并且完成组装的过程。如,做饭过程2.意图是什么? 将类的构建逻辑转移到类的实例化外部。3.创建者模式解读 1)类图 2)角色分析 Product:所需要创建的原创 2013-09-04 10:34:57 · 881 阅读 · 0 评论 -
C++抽象工厂模式举例
/************************************************************************//* 抽象工厂模式 *//*******************************************************转载 2013-09-04 12:21:56 · 834 阅读 · 0 评论 -
设计模式之原型模式
1.原型模式的意图是什么? 通过复制一个现有的对象来生成新的对象,而不是通过实例化方式。2.浅复制和深复制 Object类的clone方法只会拷贝对象中的基本的数据类型,对于数组、容器对象、引用对象等都不会拷贝,这就是浅拷贝。如果要实现深拷贝,必须将原型模式中的数组、容器对象、引用对象等另行拷贝。会发生深拷贝的有java中的8中基本类型以及他们的封装原创 2013-09-04 15:44:07 · 740 阅读 · 0 评论 -
设计模式之模板方法模式
1.术语 1)操作和方法的区别 操作是方法的一种抽象,方法是操作的实现;同种操作可能由不同的方法实现。 2)算法是一个接收输入和产生输出的过程,算法作用于一些方法,一个算法过程可能包括多个操作和方法。2.模板方法模式的定义 定义一个操作中的算法的骨架,而将步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。3原创 2013-09-05 09:48:18 · 754 阅读 · 0 评论 -
设计模式学习笔记-状态模式
1. 概述 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。2. 解决的问题 主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同的一系列类当中,可以把复杂的逻辑判断简单化。3. 模式中的角色 3.1 上下文环境(Context):它定义了客户程序需要的接口并维护一个具体状态角色的实例,转载 2013-08-29 08:47:25 · 595 阅读 · 0 评论 -
设计模式之观察者模式
1. 概述 有时被称作发布/订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。2. 解决的问题 将一个系统分割成一个一些类相互协作的类有一个不好的副作用,那就是需要维护相关对象间的一致性。我们不希望为了维持一致性而使各类紧密耦合,这样会给维护、扩展和重用都带转载 2013-08-04 11:54:05 · 725 阅读 · 0 评论 -
设计模式之适配器模式
1. 概述 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。2. 解决的问题 即Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。3. 模式中的角色 3.1 目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。原创 2013-08-29 22:47:20 · 758 阅读 · 0 评论 -
设计模式之外观(Facade)模式
1. 外观类、工具类和示例类 1)一个外观就是一个类,它包含的功能介于工具包与完整的应用程序之间,为工具包或子系统的类提供了简单的用法; 2)工具类:Java类库中的类,这些类的方法全是静态方法; 3)示例类:一个完整的应用程序; 示例类可单独运行,却无法重用,仅用于演示使用子系统的方法。外观类则是可配置、可重用的类,提供了高层次的接口,使得子系统的使原创 2013-08-30 09:38:51 · 786 阅读 · 0 评论 -
设计模式之组合(合成)模式
1. 概述 将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。2. 解决的问题 当希望忽略单个对象和组合对象的区别,统一使用组合结构中的所有对象(将这种“统一”性封装起来)。3. 组合模式中的角色 3.1 组合部件(Component):它是一个抽象角色,为要组合的对象提供统一的接口。原创 2013-08-30 10:55:42 · 1729 阅读 · 0 评论 -
Java开发中的23种设计模式详解
设计模式(Design Patterns) ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真转载 2013-08-30 11:34:06 · 1008 阅读 · 0 评论 -
设计模式之命令模式
1.命令模式的意图是什么? 命令模式的意图是将请求封装在对象内部。从而可像操作对象那样来操作请求,使你可用不同的请求对客户进行参数化; 对请求排队或记录请求日志,以及支持可撤销的操作。2.为什么用命令模式? 有时我们无法控制方法执行的时机与上下文,此时,可将方法封装在对象的内部,通过在对象内部存储调用方法所需要的信息,就可让客户端或者服务决定何时调用该方法。原创 2013-09-06 09:16:58 · 721 阅读 · 0 评论 -
设计模式之解释器模式
1.引言:四则运算你会吗 在银行、证券类项目中,经常会有一些模型运算,通过对现有数据的统计、分析而预测不可知或未来可能发生的商业行为。模型运算大部分是针对海量数据的,例如建立一个模型公式,分析一个城市的消费倾向,进而影响银行的营销和业务扩张方向,一般的模型运算都有一个或多个运算公式,通常是加减乘除四则运算,偶尔也有指数、开方等复杂运算。具体到一个金融业务中,模型公式是非常复杂的,转载 2013-09-06 10:45:15 · 815 阅读 · 0 评论 -
设计模式之单例模式
定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。类型:创建类模式类图:类图知识点:1.类图分为三部分,依次是类名、属性、方法2.以>结尾的为注释信息3.修饰符+代表public,-代表private,#代表protected,什么都没有代表包可见。4.带下划线的属性或方法代表是静态的。5.对类图中对象的关转载 2013-08-04 12:23:57 · 512 阅读 · 0 评论 -
设计模式之装饰器模式
1.装饰器模式的意图 在对象的外围创建一个称为封装器的封装,动态地给这个对象添加一些功能。2.装饰器模式概述 装饰模式能够实现动态的为对象添加功能,是从一个对象外部来给对象添加功能。通常给对象添加功能,要么直接修改对象添加相应的功能,要么派生对应的子类来扩展,抑或是使用对象组合的方式。显然,直接修改对应的类这种方式并不可取。在面向对象的设计中,而我们也应该尽原创 2013-09-06 12:18:06 · 827 阅读 · 0 评论 -
设计模式之访问者模式
1.访问者模式的意图 在不改变类层次结构的前提下,对该层次结构进行扩展。2.模式解读 UML图 角色分析 1)访问者角色(Visitor):为该对象结构中具体元素角色声明一个访问操作接口。该操作接口的名字和参数标识了发送访问请求给具体访问者的具体元素角色。这样访问者就可以通过该元素角色的特定接口直接访问它。 2)具体访问者角色(Concrete Vi原创 2013-09-07 11:12:17 · 612 阅读 · 0 评论 -
设计模式之迭代器模式
1.迭代器模式的意图 让客户端类可以顺序访问集合元素。2.迭代器模式在JAVA中的应用 这个模式在java的类库中已经实现了,在java中所有的集合类都实现了Conllection接口,而Conllection接口又继承了Iterable接口,该接口有一个iterator方法,也就是所以的集合类都可以通过这个iterator方法来转换成Iterator类原创 2013-09-07 09:52:49 · 658 阅读 · 0 评论 -
设计模式之Bridge模式
1.Bridge模式定义 将抽象和行为划分开来,各自独立,但能动态的结合。 任何事物对象都有抽象和行为之分,例如人,人是一种抽象,人分男人和女人等;人有行为,行为也有各种具体表现,所以,“人”与“人的行为”两个概念也反映了抽象和行为之分。 在面向对象设计的基本概念中,对象这个概念实际是由属性和行为两个部分组成的,属性我们可以认为是一种静止原创 2013-08-04 11:32:56 · 715 阅读 · 0 评论 -
设计模式之策略模式
1.策略模式的意图是什么? 将可互换的方法(策略)封装在各自独立的类中,并且每个方法(策略)都实现一个公共的操作。2.策略模式概述 策略操作定义了策略的输入与输出,实现则由各个独立的类完成。策略模式通过将问题的不同解决方法封装在不同的类,以帮助我们组织和简化代码。3.策略模式解读 1)UML图 2)角色解读抽象策略角色(Stra原创 2013-09-05 11:36:56 · 847 阅读 · 1 评论