Design Patterns
colayungnew
这个作者很懒,什么都没留下…
展开
-
61条面向对象设计的经验原则
“你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚。但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起。” “你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚。但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起。”原创 2004-12-23 12:13:00 · 1636 阅读 · 0 评论 -
设计模式之Strategy(策略)
Strategy策略模式是属于设计模式中 对象行为型模式,主要是定义一系列的算法,把这些算法一个个封装成单独的类.Stratrgy应用比较广泛,比如, 公司经营业务变化图, 可能有两种实现方式,一个是线条曲线,一个是框图(bar),这是两种算法,可以使用Strategy实现.这里以字符串替代为例, 有一个文件,我们需要读取后,希望替代其中相应的变量,然后输出.关于替代其中变量的方法可能有多原创 2004-11-11 13:38:00 · 717 阅读 · 0 评论 -
设计模式之Bridge
Bridge模式定义 :将抽象和行为划分开来,各自独立,但能动态的结合。任何事物对象都有抽象和行为之分,例如人,人是一种抽象,人分男人和女人等;人有行为,行为也有各种具体表现,所以,“人”与“人的行为”两个概念也反映了抽象和行为之分。在面向对象设计的基本概念中,对象这个概念实际是由属性和行为两个部分组成的,属性我们可以认为是一种静止的,是一种抽象,一般情况下,行为是包含在一个对象中,但是,原创 2004-11-11 13:33:00 · 810 阅读 · 0 评论 -
设计模式之Decorator(油漆工)
装饰模式:Decorator常被翻译成"装饰",我觉得翻译成"油漆工"更形象点,油漆工(decorator)是用来刷油漆的,那么被刷油漆的对象我们称decoratee.这两种实体在Decorator模式中是必须的.Decorator定义:动态给一个对象添加一些额外的职责,就象在墙上刷油漆.使用Decorator模式相比用生成子类方式达到功能的扩充显得更为灵活.为什么使用Decorato原创 2004-11-11 13:29:00 · 802 阅读 · 0 评论 -
设计模式之Composite(组合)
Composite模式定义:将对象以树形结构组织起来,以达成“部分-整体” 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性.Composite比较容易理解,想到Composite就应该想到树形结构图。组合体内这些对象都有共同接口,当组合体一个对象的方法被调用执行时,Composite将遍历(Iterator)整个树形结构,寻找同样包含这个方法的对象并实现调用执行。可以用牵一动百来形原创 2004-11-11 13:27:00 · 712 阅读 · 0 评论 -
设计模式之Builder
Builder模式定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们.用户不知道内部的具体构建细节.Builder模式是非常类似抽象工厂模式,细微的区别大概只有在反复使用中才能体会到.为何使用?是为了将构建复杂对象的过程和它的部件解耦.注意: 是解耦原创 2004-11-11 13:22:00 · 611 阅读 · 0 评论 -
应用程序结构:概念视图-2服务
本页内容服务模型服务设计概念服务是投资服务小结服务是现代企业应用程序体系结构的构造块。软件服务是应用程序逻辑的离散单元,它们提供了基于消息的、适合通过网络访问的接口。 基于服务的体系结构允许使用非常灵活的部署策略;服务模型允许应用程序利用网络上的计算资源,而不要求所有的数据和逻辑都驻留在单独的计算机上。此方法支持许多方案;以原创 2004-11-12 10:18:00 · 1809 阅读 · 0 评论 -
应用程序结构:概念视图-1简介
简介应用程序结构:概念视图 本页内容应用程序概念: “概念性结构”基于服务的应用程序结构 服务消息协定策略状态处理应用程序本文介绍 Microsoft 的应用程序体系结构的概念视图。本文的目标读者是那些希望理解 Microsoft 处理企业、应用程序及技术体系原创 2004-11-12 10:17:00 · 1187 阅读 · 0 评论 -
设计模式之State
State模式的定义: 不同的状态,不同的行为;或者说,每个状态有着相应的行为.何时使用?State模式在实际使用中比较多,适合"状态的切换".因为我们经常会使用If elseif else 进行状态切换, 如果针对状态的这样判断切换反复出现,我们就要联想到是否可以采取State模式了.不只是根据状态,也有根据属性.如果某个对象的属性不同,对象的行为就不一样,这点在数据库系统中出现频率比较原创 2004-11-11 13:40:00 · 1273 阅读 · 0 评论 -
应用程序结构:概念视图
应用程序结构:概念视图2002 年 7 月应用程序体系体系结构的概念视图是在 Microsoft 体系结构概述 中介绍的诸多应用程序体系结构视图中的一个。 简介Web 服务的出现为针对概念层工作的架构师引入了一组新的基础体系结构元素。 这些元素包括 Web 服务、消息、状态和处理,本文将对它们进行介绍。服务Web 服务是应用程序逻辑的离散单元,它们提供原创 2004-11-12 10:15:00 · 1483 阅读 · 0 评论 -
应用程序结构:概念视图-3消息处理(企业结构)
内容本页内容消息消息路由消息交换的形式<IMG height=9 alt=" 消息处理要求 " hspace=4 src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" width=7 v原创 2004-11-12 10:20:00 · 1048 阅读 · 0 评论 -
应用程序结构:概念视图-4协定(企业结构)
服务通过发送和接收消息的服务接口进行通信。服务到服务的通信遵循协定,通过明确此协定,用户可能在不影响交互的情况下更改服务实现。本页内容协定简介服务接口设计时协定 运行时协定服务接口会话协定小结注意协定简介两个服务进行交互时,消息在它们之间来回发送。 两端都需要确切知道它们原创 2004-11-12 10:21:00 · 865 阅读 · 0 评论 -
设计模式之Prototype——作业篇
设计模式之Prototype——作业篇今年要交作业,可是由于我这几天沉迷于CS之中,到现在还没写作业,这可该怎么办呢,谁都知道我们老师最讨厌不写作业的学生了。嘿嘿,还好我有一门优秀的技能,那就是——Clone大法(俗称COPY大法),正是由于拥有该技能,才能使我残酷的斗争中立于不败之地。于是我以迅雷不及眼耳盗铃之势拿来了张三的原创 2004-12-14 13:40:00 · 964 阅读 · 0 评论 -
设计模式之Facade——家庭篇
设计模式之Facade——家庭篇今年十一国庆节,我呆在家里美美的享受了一下家的温馨。首先让我来介绍一下我的家庭成员:妻子(Wife)女儿(Daughter)我(My)我们都是家庭(Family)的一分子,我们是以家庭对外的。就象我们国家对外是以“中国”,外国人都称我们是中国人,但在中国这个大家庭内部,包括了汉、原创 2004-12-14 13:39:00 · 958 阅读 · 0 评论 -
设计模式之Decorator——家装篇
设计模式之Decorator——家装篇最近家里搞装修,做了一套家具,需要刷一下漆,因此我就去市场找了油漆师傅和油漆徒弟两个人。油漆师傅主要买油漆和调油漆,油漆徒弟主要来刷油漆(团队精神?哈哈,不禁让让我想起CS,你先冲,我拣菜。)。1、在这里,我们先把这个油漆工作定义成一个接口类:public interface原创 2004-12-14 13:38:00 · 1094 阅读 · 0 评论 -
设计模式之Visitor——送礼篇
设计模式之Visitor——送礼篇今年过年不收礼,收礼只收脑白金。听到这暗示性的广告词,我的脑袋突然一亮。因为最近因为要办某事,必须要给单位的领导要表示一下。到底送什么,还真让人头痛,还好有脑白金,奶奶的。。。,腐败啊,罪过!首先要对送礼的对象进行分析,单位有两个领导,一正,一副。因此给不同的领导送的礼也是不同的(哈,收入原创 2004-12-14 13:38:00 · 1106 阅读 · 1 评论 -
设计模式之Proxy——买票篇
设计模式之Proxy——买票篇今年过年手气好,打牌赢了100块,我得意的笑,我得意的笑,总之一个字“爽”。因为往年打牌从没赢过啊!我高兴的回到家里,还没等我开口报告战况,老婆撂给我一句话“我弟要回上海,你给买张票吧。”我心里虽然不高兴,但脸上却表现出很开心的样子,立刻用坚定语气说到:“请领导放心,保证完成任务!”。保证归保证,原创 2004-12-14 13:41:00 · 1006 阅读 · 0 评论 -
设计模式之Builder——购机篇
设计模式之Builder——购机篇最近想买一台电脑用于学习,因此我就去了一家电脑公司,经过分析,选用了下面的配置:CPU P2.4主板 Intel硬盘 80G。。。买过电脑的朋友可能都知道,我们选好配置后,电脑公司就会有专门的组装师(Assembler)来给我们装机。电脑(Computer)就原创 2004-12-14 13:37:00 · 917 阅读 · 0 评论 -
设计模式之Factory——买货篇
设计模式之Factory——买货篇今天老婆让我去市场买一些水果,具体买什么自己定(哈,老婆放放权了!)。来到市场,我发现主要有一些水果:苹果(Apple),葡萄(Grape)和鸭梨(Pear)。到底买什么好呢?我一阵思量。俗话说:“饭后一只烟,赛过活神仙。饭后吃苹果,西施见我躲。”为了老婆的漂亮,我决定买苹果。好,言归正传,开始买吧! 主要有以下三种原创 2004-12-14 13:35:00 · 904 阅读 · 0 评论 -
应用程序结构:概念视图-7处理(企业结构)
本页内容处理服务简介业务处理服务的优点使用处理服务准则处理服务所带来的好处处理小结在使用多项服务来创建系统时,很容易出现服务间通信失控的情况。 例如,可能有一项服务会调用另外五项服务,而在这五项服务中,有些会再调用其他服务,这样,系统很快就会失去控制。 由于每项服务都必须辨别出其所调用服务的接口,从而导致大型系统最终会包含大量原创 2004-11-12 10:23:00 · 874 阅读 · 0 评论 -
设计模式之Mediator(中介者)
Mediator中介者模式定义:用一个中介对象来封装一系列关于对象交互行为.为何使用Mediator?各个对象之间的交互操作非常多;每个对象的行为操作都依赖彼此对方,修改一个对象的行为,同时会涉及到修改很多其他对象的行为,如果使用Mediator模式,可以使各个对象间的耦合松散,只需关心和 Mediator的关系,使多对多的关系变成了一对多的关系,可以降低系统的复杂性,提高可修改扩展性.如原创 2004-11-11 13:39:00 · 820 阅读 · 0 评论 -
设计模式之Observer
Java深入到一定程度,就不可避免的碰到设计模式(design pattern)这一概念,了解设计模式,将使自己对java中的接口或抽象类应用有更深的理解.设计模式在java的中型系统中应用广泛,遵循一定的编程模式,才能使自己的代码便于理解,易于交流,Observer(观察者)模式是比较常用的一个模式,尤其在界面设计中应用广泛,而本站所关注的是Java在电子商务系统中应用,因此想从电子商务实例原创 2004-11-11 13:36:00 · 650 阅读 · 0 评论 -
设计模式之Command
Command模式是最让我疑惑的一个模式,我在阅读了很多代码后,才感觉隐约掌握其大概原理,我认为理解设计模式最主要是掌握起原理构造,这样才对自己实际编程有指导作用.Command模式实际上不是个很具体,规定很多的模式,正是这个灵活性,让人有些confuse.Command定义n 将来自客户端的请求传入一个对象,无需了解这个请求激活的 动作或有关接受这个请求的处理细节。这是一种两台机器之间通原创 2004-11-11 13:35:00 · 634 阅读 · 0 评论 -
设计模式之Proxy(代理)
理解并使用设计模式,能够培养我们良好的面向对象编程习惯,同时在实际应用中,可以如鱼得水,享受游刃有余的乐趣.代理模式是比较有用途的一种模式,而且变种较多,应用场合覆盖从小结构到整个系统的大结构,Proxy是代理的意思,我们也许有代理服务器等概念,代理概念可以解释为:在出发点到目的地之间有一道中间层,意为代理.设计模式中定义: 为其他对象提供一种代理以控制对这个对象的访问.为什么要原创 2004-11-11 13:25:00 · 616 阅读 · 0 评论 -
设计模式之Prototype(原型)
原型模式定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。如何使用?因为Java中的提供clone()方法来实现对象的克隆,所以Prototype模式实现一原创 2004-11-11 13:22:00 · 704 阅读 · 0 评论 -
设计模式之Factory
工厂模式定义:提供创建对象的接口.为何使用?工厂模式是我们最常用的模式了,著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。为什么工厂模式是如此常用?因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑实用工厂模式,虽原创 2004-11-11 13:18:00 · 610 阅读 · 0 评论 -
建筑和软件中模式之异同
CSDN的透明特别推崇《建筑的永恒之道》,认为从中探寻到软件的永恒之道,并就"设计模式"写了专门文章《探寻软件的永恒之道 》,其中很多观点我看了很受启发,以前我也将"设计模式" 看成一个简单的解决方案,没有从一种高度来看待"设计模式"在软件中地位,下面是我自己的一些想法:建筑和软件某些地方是可以来比喻的特别是中国传统建筑,那是很讲模式的,这些都是传统文化使然,比如京剧 一招一式都有原创 2004-11-11 13:16:00 · 926 阅读 · 0 评论 -
应用程序结构:概念视图-6状态(企业结构)
本页内容状态简介业务处理使用其他服务<IMG height=9 alt=" 联机处理和脱机处理 " hspace=4 src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" width=7 vspa原创 2004-11-12 10:22:00 · 1125 阅读 · 0 评论 -
应用程序结构:概念视图-5策略(企业结构)
需要管理和保护的服务。策略由一组规则构成,每一个规则都适用于运行时行为的某一方面。例如,服务可能会有多个接口;可以设置适用于整个服务的规则,也可以设置仅适用于一个或多个服务接口的规则。 本页内容策略简介协定在组织中使用策略<IMG height=9 alt=" 策略小结 " hspace=4 src="http://原创 2004-11-12 10:21:00 · 892 阅读 · 0 评论 -
设计模式之Template
Template模板模式定义:定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中.使用Java的抽象类时,就经常会使用到Template模式,因此Template模式使用很普遍.而且很容易理解和使用。 public abstract class Benchmark{ /** * 下面操作是我们希望在子类中完成 */ public abstract void b原创 2004-11-11 13:37:00 · 746 阅读 · 0 评论 -
设计模式之Adapter(适配器)
适配器模式定义:将两个不兼容的类纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和Adaptor(适配器)两个身份.为何使用?我们经常碰到要将两个没有关系的类组合在一起使用,第一解决方案是:修改各自类的接口,但是如果我们没有源代码,或者,我们不愿意为了一个应用而修改各自的接口。 怎么办? 使用Adapter,在这两种接口之间创建一个混合接口(混血儿).如何使用?实现Ad原创 2004-11-11 13:24:00 · 752 阅读 · 0 评论 -
设计模式之Facade(外观 总管 Manager)
Facade模式的定义: 为子系统中的一组接口提供一个一致的界面.Facade一个典型应用就是数据库JDBC的应用,如下例对数据库的操作:public class DBCompare { Connection conn = null; PreparedStatement prep = null; ResultSet rset = null; try {原创 2004-11-11 13:26:00 · 718 阅读 · 0 评论 -
设计模式之Chain of Responsibility(职责链)
Chain of Responsibility定义Chain of Responsibility(CoR) 是用一系列类(classes)试图处理一个请求request,这些类之间是一个松散的耦合,唯一共同点是在他们之间传递request. 也就是说,来了一个请求,A类先处理,如果没有处理,就传递到B类处理,如果没有处理,就传递到C类处理,就这样象一个链条(chain)一样传递下去。如何使用?原创 2004-11-11 13:38:00 · 947 阅读 · 0 评论 -
设计模式之Memento(备忘机制)
Memento备望录模式定义:memento是一个保存另外一个对象内部状态拷贝的对象.这样以后就可以将该对象恢复到原先保存的状态.Memento模式相对也比较好理解,我们看下列代码:public class Originator { private int number; private File file = null; public Origina原创 2004-11-11 13:41:00 · 961 阅读 · 0 评论 -
设计模式之Flyweight(享元) FlyWeight模式
Flyweight模式定义:避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类(元类).为什么使用?面向对象语言的原则就是一切都是对象,但是如果真正使用起来,有时对象数可能显得很庞大,比如,字处理软件,如果以每个文字都作为一个对象,几千个字,对象数就是几千,无疑耗费内存,那么我们还是要"求同存异",找出这些对象群的共同点,设计一个元类,封装可以被共享的类,另外,还有一些特性原创 2004-11-11 13:34:00 · 719 阅读 · 0 评论 -
设计模式之Singleton(单态)
单态定义:Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。 在很多操作中,比如建立目录 数据库连接都需要这样的单线程操作。还有, singleton能够被状态化; 这样,多个单态类在一起就可以作为一个状态仓库一样向外提供服务,比如,你要论坛中的帖子计数器,每次浏览一次需要计数,单态类能否保持住这个计数,并且能synchronize的安全自动加原创 2004-11-11 13:17:00 · 683 阅读 · 0 评论 -
学习GoF设计模式的重要性
著名的EJB领域顶尖的专家Richard Monson-Haefel在其个人网站:www.EJBNow.com中极力推荐的GoF的《设计模式》,原文如下:Design Patterns Most developers claim to experience an epiphany reading this book. If youve never read the Design Patt原创 2004-11-11 13:15:00 · 814 阅读 · 0 评论 -
应用程序结构:概念视图-9词汇表(企业体系结构)
ACIDtransaction(ACID 事务)事务是作为单个逻辑工作单元执行的操作的序列。 ACID 事务必须具备四个属性,称为 ACID 属性: •Atomicity(原子性)。 工作单元不可分;要么执行所有数据修改,要么不执行任何数据修改。•Consistency(一致性)。 事务完成后,必须使所有数据处于一致的状态。 •Isola原创 2004-11-12 10:24:00 · 998 阅读 · 0 评论 -
应用程序结构:概念视图-8应用程序(企业结构)
本页内容业务服务剖析业务服务用户接口处理概念上的应用程序结构应用程序小结业务服务在基于服务的体系结构中,应用程序由处理服务(请参阅处理)以及实现业务功能和用户接口 (UI) 的更基本的服务组成。在剖析业务服务时,您将看到它的体系结构与下面图 1 介绍的处理中所描述的体系结构非常类似。不同之处在于下图已用组件将服务替换。原创 2004-11-12 10:24:00 · 1416 阅读 · 0 评论 -
Microsoft 体系结构概述
2002 年 7 月Michael PlattMicrosoft Corporation本文的目标读者是那些希望理解 Microsoft 在企业、应用程序和技术结构方面提供的方法的商业、软件和基础设施结构设计师。它包括结构的术语、模式、概念和定义,以及结构的一系列视图。 本页内容企业体系结构应用程序和技术结构概念视图、逻辑视图和原创 2004-11-12 10:13:00 · 1044 阅读 · 0 评论