设计模式
文章平均质量分 88
顽皮小熊
这个作者很懒,什么都没留下…
展开
-
关于J2EE层次设计架构实例的分析详解
Part 1 层 层(layer)这个概念在计算机领域是非常了不得的一个概念。计算机本身就体现了一种层的概念:系统调用层、设备驱动层、操作系统层、CPU指令集。每个层都负责自己的职责。网络同样也是层的概念,最著名的OSI的七层协议。 层到了软件领域也一样好用。为什么呢?我们看看使用层技术有什么好处: 你使用层,但是不需要去了解层的实现细节。 可以使用另一种技术来转载 2007-07-17 10:10:00 · 703 阅读 · 0 评论 -
java与模式》----创建模式系列工厂模式、单态模式精讲
创建模式是对类实例化过程的抽象。一些系统在创建对象的时候需要动态的决定怎样创建对象、创建哪些对象、以及如何组合,表示这些对象。创建模式描述了怎样构造和封装这些动态的决定。创建模式又分类的创建模式和对象的创建模式。 类的创建模式:类的创建模式使用继承关系,把类的创建延迟到子类,从而封装了客户端将得到哪些具体类的信息,并隐藏了这些类的实例是如何被创建的和放在一起的。转载 2007-07-17 14:52:00 · 945 阅读 · 0 评论 -
Simple Facotry
创建型模式 创建型模式(Creational Pattern)对类的实例化过程进行了抽象,能够使软件模块做到与对象创建和组织的无关性。为了使体系结构更加清晰,一些软件在设计上要求当创建类的具体实例时,能够根据具体的语境来动态地决定怎样创建对象,创建哪些对象,以及怎样组织和表示这些对象,而创建型模式所要描述的就是该如何来解决这些问题。按照生成目标的不同,创建型模式可以分为类的创建型模式和对象的创转载 2007-07-17 14:53:00 · 750 阅读 · 0 评论 -
《分析模式》读书笔记:企业财务分析中的观察和测量
这一章的内容基于学习笔记的观察和测量模式,所以,请首先阅读观察和测量的内容。在大规模的企业中,高层的问题很容易被发现,但是要发现这些问题的根源却比较困难,因为这样的企业会产生大量的信息,以至于很容易分析人员就被淹没在这些信息当中了。例如,一个企业最主要的财务表现是它的最终财政收入,如果财政收入有问题,就必须找出引起问题的原因。在ACM(Aroma Coffee Makers)的财政收入中表转载 2007-07-17 10:12:00 · 1190 阅读 · 0 评论 -
《分析模式》读书笔记:观察和测量
1 观察和测量(Observation and Mesurements) 许多计算机系统记录现实世界中各种对象的信息,这些信息通常表现为计算机系统中的记录、属性、对象等其他各种各样的形式。最典型的方式是把某项信息记录成某个对象的一个属性,转载 2007-07-17 10:13:00 · 1512 阅读 · 0 评论 -
代理模式、动态代理和面向方面
代理的意思很好理解,它借鉴了我们日常所用的代理的意思:就是本来该自己亲自去做的某件事,由于某种原因不能直接做,而只能请人代替你做,这个被你请来做事的人就是代理。比如过春节要回家,由于你要上班,没时间去买票,就得票务中介代你购买,这就是一种代理模式。这个情景可以形象的描述如下:class:火车站 { 卖票: {……} } 火车站是卖票的转载 2007-07-17 14:16:00 · 499 阅读 · 0 评论 -
Java平台AOP技术研究
3.1 Java平台AOP技术概览 3.1.1 AOP技术在Java平台中的应用转载 2007-07-17 14:18:00 · 1039 阅读 · 1 评论 -
AOP与权限控制实现
以往在J2EE系统中,访问权限控制系统的实现主要有两种:应用程序实现和J2EE容器实现。传统的应用程序实现这是最直接的、传统的一种解决方式,通常是在具体方法前加一个权限判断语句,如下: public class ForumFactoryProxy extends ForumFactory { ...... public转载 2007-07-17 14:19:00 · 761 阅读 · 0 评论 -
SOA实践 -- 使用IoC和AOP重构SOA应用
在本文中,作者通过一个Web Service访问的实例,具体描述了SOA应用中所遇到的一系列具体问题,并描述如何利用IoC和AOP等技术进行代码重构,从而构建结构更加良好、灵活的SOA应用。 1.引言SOA是一种构造分布式系统的方法,它将业务应用功能以服务的形式提供出来,以便更好的复用、组装和与外部系统集成,从而降低开发成本,提高开发效率。SOA的目标是为企业构建一个灵活,可扩展的IT基础架构转载 2007-07-17 14:21:00 · 752 阅读 · 0 评论 -
模板方法模式实现探讨
模板方法(Template Method)模式是GOF设计模式中最为常见几个模式之一。现在流行的很多框架中(如Spring,Struts等),我们都可以看到模板方法模式的广泛应用。模板方法模式主要应用于框架设计中,在日常的应用设计中也被经常使用。可是,我们在运用模板方法模式来解决我们的需求而进行设计时,往往忽略了一些非常重要的细节。保证架构逻辑的正常执行,不被子类破坏;怎么让子类扩展模板方法等。转载 2007-07-17 14:26:00 · 685 阅读 · 0 评论 -
设计模式:Model View Presenter
本页内容 遵循 MVP 使第一次测试通过 填充 DropDownList 实现视图接口 未来计划 随着 UI 创建技术(如 ASP.NET 和 Windows? Form)的功能越来越强大,让 UI 层执行更多功能已成为普遍的做法。由于没有清晰的职责划分,UI 层经常成为逻辑层的全能代理,而后者实际上属于应用程序的其他层。Model View Presenter (MVP)转载 2007-07-17 14:26:00 · 898 阅读 · 0 评论 -
敏捷制造环境下虚拟产品的协同设计模式
敏捷制造依赖于各种现代技术和方法,而最具代表性的是敏捷虚拟企业(简称虚拟企业)的组织方式和虚拟产品的设计、开发手段。 组织虚拟企业的企业称为盟主企业,参与虚拟企业的企业称为盟员企业。在敏捷制造环境下进行虚拟产品的协同设计,可以使虚拟企业中成员的设计水平和效率得到快速提高,从而缩短产品的转载 2007-07-17 14:27:00 · 1117 阅读 · 0 评论 -
两种设计模式在EJB开发中的应用
摘要:本文介绍了J2EE的分层结构,深入研究了如何使用Session Facade模式和ValueObject 模式设计EJB,并对其开发过程做了较详细的说明。关键字:EJB ;值对象模式;会话外观模式一、概述与传统的二层体系结构相比,J2EE有两个特点:1、定义了一套标准化组件,通过为这些组件提供完整的服务。2、使用多层分布式的应用程序模型。应用程序的逻辑根据其实现的不同功能转载 2007-07-17 14:43:00 · 811 阅读 · 0 评论 -
设计模式探索系列之Bridge模式
概述 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式。 意图 将抽象部分与实现部分分离,使它们都可以独立的变化。[GOF 《设计模式》] 结构图图1 Bridge模式结构图 生活中的例子 桥接模式将抽象部分转载 2007-07-17 14:43:00 · 796 阅读 · 0 评论 -
领悟Web设计模式
摘要本文介绍了在.NET框架下应用Web设计模式改进WebForm程序设计的一些基本方法及要点。关键字设计模式,ASP.NET,WebForm,MVC,Page Controller,Front Controller,Page Cache目录引言经典的WebForm架构设计模式MVC模式下的WebFormPage Controller模式下的WebFormFront Controller模式下的W转载 2007-07-17 14:47:00 · 770 阅读 · 0 评论 -
组合还是继承,这是一个问题?
刚刚接触模式或者学习模式的人,经常会有这样的问题,为什么模式是成功的呢?很多人都会说模式是经验的积累,当然是正确的。可是经验为什么偏偏就证明了这种模式是正确的呢?这其中起用作的就是面向对象的基本原则。正是因为模式都或多或少的符合了面向对象的基本原则,所以模式才成为我们面向对象的设计和编码过程中不败的法则。那么什么是面向对象的基本原则呢?这就是我们将要一一讲到的问题。 单纯的讲到一个个的原则,就转载 2007-07-17 14:49:00 · 764 阅读 · 0 评论 -
从田忌赛马谈Iterator模式
在战国时代的齐国,赛马是一种非常流行的贵族运动。这些贵族们,上至国王,下至大臣,都以赛马为乐。不但如此,还经常以重金赌输赢。他们中间,据说大将田忌和齐王尤好此术。一天,齐王和田忌照常来赛马。当时的情况是这样的:田忌和齐王的马都分为上、中、下三个等级。其中,齐王的上等马比田忌的上等马快;中等马比田忌的中等马快,而不如田忌的上等马;下等马比田忌的下等马快,而不如田忌的中等马。我们假设齐王的转载 2007-07-17 14:46:00 · 891 阅读 · 0 评论 -
.NET设计模式研究之装饰模式
在软件系统中,有时候我们会使用继承来扩展对象的功能,但是由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性;并且随着子类的增多(扩展功能的增多),各种子类的组合(扩展功能的组合)会导致更多子类的膨胀。如何使“对象功能的扩展”能够根据需要来动态地实现?同时避免“扩展功能的增多”带来的子类膨胀问题?从而使得任何“功能扩展变化”所导致的影响将为最低?这就是本文要讲的Decorator模式。 意转载 2007-07-17 14:45:00 · 731 阅读 · 0 评论 -
《分析模式:可重用对象模型》-- 责任模式
1 责任模式 这一章关注的重点是关系,以及怎样为错综复杂的关系建立模型,另外,所有的插图都来自原书(《Analysis Patterns:Reusable Object Models》),并遵循UML标准。 1.1 Party模式 在这一章中,首先我们接触到是是Party模式,在进行系统分析和概念模型设计的时候,经常发现人和各种各样的组织有着同样的行为,例如,固定电话的计费可能是针对个人,也可转载 2007-07-17 10:11:00 · 552 阅读 · 0 评论 -
Role分析模式:角色对象基本概念
一个应用系统经常需要某一个对象在不同的上下文中具有不同行为的情形,最常见的例子是客户和供应商的问题。 例子: 某制鞋企业有很多为它们提供真皮的合作公司,在处理采购订单时,这些合作公司是它的供应商,但这些合作商同时从该制鞋企业采购皮鞋,所以在处理销售订单时,这些公司又变成了它的客户。 许多转载 2007-07-17 10:14:00 · 1219 阅读 · 0 评论 -
预订和使用可重用实体的分析模式
1.介绍 我们在此提出一个分析模式,描述怎样预订然后使用可重复使用的实体。该模式归于我们称为语义分析模式(semantic analysis patterns)的范畴[Fer98],因为它们强调的是应用模型的语义侧重面,而不是为了增加设计的灵活性。我们认为这类模式对于以需求为出发点开始建模过程的设计方法是有用的。例如,识别需求中的一些模式产生一个初步的模型,这个模型可用作后续设计的指南。转载 2007-07-17 10:19:00 · 750 阅读 · 0 评论 -
AOP是什么?
为什么要区分J2EE容器和J2EE应用系统?我们知道,J2EE应用系统只有部署在J2EE容器中才能运行,那么为什么划分为J2EE容器和J2EE应用系统? 通过对J2EE容器运行机制的分析(见我的电子教材“EJB实用原理”),我们可以发现:实际上J2EE容器分离了一般应用系统的一些通用功能,例如事务机制、安全机制以及对象池或线程池等性能优化机制。这些功能机制是每个应用系统几乎都需要的,因此可转载 2007-07-17 14:00:00 · 550 阅读 · 0 评论 -
了解AOP
面向对象技术很好地解决了软件系统中角色划分的问题。借助于面向对象的分析、设计和实现技术,开发者可以将问题领域的“名词”转换成软件系统中的对象,从而很自然地完成从问题到软件的转换. 但是,问题领域的某些需求却偏偏不是用这样的“名词”来描述的.我的一个朋友就曾经遇到这样的问题:需要对系统中的某些方法进行日志记录,这种需要记录方法 散布在40多个类中。面对这种需求,应该怎么办呢?最直接的办法就是:创建一转载 2007-07-17 14:03:00 · 586 阅读 · 0 评论 -
通用动态代理链-为你的应用程序添加AOP
摘要: 大多数开发者都知道在运行时中如何装饰一个对象并向其增加额外的功能。四人帮(GoF)的装饰器模式可帮助开发者获得这个功能。在反射包中,J2SE 1.3引入动态代理用于动态地装饰一个业务对象。此外,链化动态代理可以在运行时动态地向一个业务对象增加多种行为。特别地,这些额外的行为的类型是由面向方面编程定位的。转载 2007-07-17 14:06:00 · 1775 阅读 · 0 评论 -
AOP技术基础
2.1 AOP技术起源 AOP技术的诞生并不算晚,早在1990年开始,来自Xerox Palo Alto Research转载 2007-07-17 14:17:00 · 513 阅读 · 0 评论 -
AOP和AspectJ
需求和问题以上篇《AOP是什么》中并发访问应用为例子:多个访问类同时访问一个共享数据对象时,每个访问类在访问这个数据对象时,需要将数据对象上锁,访问完成后,再实行解锁,供其它并发线程访问,这是我们处理并发访问资源的方式。为了实现这个需求,先实现传统的编程,这里我们假定有一个写锁,对数据对象实行写之前,首先对这个对象进行上写锁,写操作完毕后,必须释放写锁。首先,我们需要一个锁,转载 2007-07-17 14:20:00 · 536 阅读 · 0 评论 -
玩玩Spring之IOC
Spring的功能是很强大的,在其“绝不发明自己认为好的轮子,而只发明自己认为不好的轮子”的指导思想下,通过充分实践了“一切实事求是、‘循证架构’的工作方式”的理论,基本上把轻量级的J2EE应用框架(如ORM、MVC等)进行了整合,并构架了一些常用的功能(如DAO),形成了一个功能强大的J2EE轻量级企业应用框架。 然而,或许是大家对Spring掌握得还不透彻的缘故吧,看到很多软件企业中用到的转载 2007-07-17 14:23:00 · 511 阅读 · 0 评论 -
利用Rational XDE中模式的能力来促进软件的重用
软件的重用一直以来都是软件开发追求的重要目标之一。软件的重用可以缩短软件开放周期,提高软件质量。可重用的软件组件、设计、代码是软件开发企业最重要的资产。但是软件的重用受到很多因素的影响,比如软件设计的质量,项目的交付时间,以及软件开发过程各阶段工作产品的管理及规范都在某种程度上制约了软件的重用。软件的重用可以分为多个层次:代码级重用,组件级重用,设计的重用,软件架构的重用以及解决方案的重用。对于开转载 2007-07-17 14:24:00 · 723 阅读 · 0 评论 -
浅析软件项目开发中的单件模式
前言 单件(Singleton)模式作为设计模式的一个典型且相对简单的构造型模式,已经在很多项目的实际开发中被广泛采用,由于其所有相关操作都是基于同一个实例的引用,因此单件模式的使用主要出于如下几个目的: 逻辑上仅仅只有一个实例才可以保证逻辑的正确性。 通过共享减少内存的使用,作为应用中一些集中的统一数据机制存在。 减少因为频繁的构造过程带来应用上的性能损失。 下面是一个最简单转载 2007-07-17 14:25:00 · 649 阅读 · 0 评论 -
软件的架构与设计模式之Layers模式
建筑学的设计原则也应当成为软件系统设计的指导原则。第一种情况这也就是最为熟知的情况。客户端向第N层发出请求,而第N层不能独立完成请求,需要调用第N-1层所提供的服务,第N-1层同样需要他的下级,也就是N-2层所提供的服务。如此往复,直到第2层和第1层。第1层可以独立完成自己的任务,它将执行的结果返还给第2层。第2层得到第1层的结果之后,便能够继续完成自己的任务了,它会把执行的结果继续向转载 2007-07-17 14:32:00 · 911 阅读 · 0 评论 -
EJB 设计模式概述
一. 设计模式重要性采用EJB技术的J2EE项目中,EJB架构的设计好坏将直接影响系统的性能、可扩展性、可维护性、组件可重用性及开发效率。项目越复杂,项目队伍越庞大则越能体现良好设计的重要性。 二. 常见EJB设计模式Session Facade Pattern 通常项目中,客户端往往需要频繁的对服务器端数据进行操作。当采用实体EJB作为数据的抽象层时,如果直接让客户端程序与实体EJB交互转载 2007-07-17 14:33:00 · 2546 阅读 · 0 评论 -
代码的“门面”——模式系列谈之Facade模式
看到“门面”这个词,大家一定都觉得很熟悉。不错,这个词正是借用了我们日常生活中的“门面”的概念。日常生活中的“门面”,正是我们买东西的地方。因此可以这么说,“门面”就是这么一个地方,它们跟各种商品的生产商打交道,收集商品后,再卖给我们。换句话说,如果没有“门面”,我们将不得不直接跟各种各样的生产商买商品;而有了“门面”,我们要买东西,直接跟“门面”打交道就可以了。 Facade模式正是这样转载 2007-07-17 14:44:00 · 4411 阅读 · 2 评论 -
面向对象设计模式与原则
设计模式简介每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。-- Christopher Alexander设计模式描述了软件设计过程中某一类常见问题的一般性的解决方案。面向对象设计模式描述了面向对象设计过程中、特定场景下、类与相互通信的对象之间<淖橹叵怠?/p> GoF23 种设计模式历史性著作《设计模式:可复用面向对象软件的基础》一书中描述了2转载 2007-07-17 14:48:00 · 945 阅读 · 0 评论