我思故我强

Java 设计模式与建模专题-设计模式


Factory Method 模式
Singleton 模式
Observer 模式
State 模式
控制反转(IoC)模式
Single Call 模式
其它模式
反模式
从 Java 类库看设计模式
使用设计模式改善程序结构



本专题为 Java 软件工程师们提供了面向 Java 的设计模式和建模方面相关的文章和教程。帮助读者理解、学习作为专业软件工程师必需掌握的设计模式与建模技术。


Factory Method 模式

Factory Method 模式在 Javamail 中的应用
设计模式在软件工程中占有重要地位,而 JavaMail 是 Java 平台的一个扩展,为管理电子邮件提供了统一的应用编程接口。本文讨论 Factory Method 设计模式在Javamail 中的应用。

在 Java 中应用设计模式 - Factory Method
在设计模式中,Factory Method也是比较简单的一个,但应用非常广泛,EJB,RMI,COM,CORBA,Swing中都可以看到此模式的影子,它是最重要的模式之一。在很多地方我们都会看到xxxFactory这样命名的类,那么,什么是Factory Method,为什么要用这个模式,如何用Java语言来实现该模式,这就是本文想要带给大家的内容。

Factory 模式的优点
最常见的构造一个 Object 的方法是通过构造函数. 例: String strTemp = new String('Hello World'); 其实还有一种一种更灵活的创建Object 的方式---利用Factory 模式. 这是著名的'四人帮'(Gangs Of Four)的经典之作'设计模式'[(Design Pattern) 所记载的23模式之一. 它有着构造函数不可比拟的一些优点.




Singleton 模式

在 Java 中应用设计模式 -- Singleton
本文介绍了设计模式中 Singleton 的基本概念,对其功能和用途进行了简单的分析,列出了通常实现 Singleton 的几种方法,并给出了详细的Java 代码。




Observer 模式

Observer 模式在 J2EE 中的实现
设计模式是经验的文档化。它是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述。更通俗的来说,它是一个问题/解决方案对。一旦我们掌握了设计模式,就等于拥有了一支强有力的专家队伍。它甚至能够使面向对象的新手利用前人的经验找出职责明确的类和对象,从而获得优雅的解决方案。




State 模式

State 模式在客户端软件中的应用
在对一个 J2EE 项目的重构、增加新功能的过程中,对客户端 GUI 程序,我们使用了 State 模式。结果显示,该模式的使用,不但减少了客户端 GUI 程序的程序规模(LOC),而且,该部分的开发及单元测试时间大大减少,同时,在集成测试中发现的缺陷数量比使用该模式前平均减少了3倍。本文就该项目中使用 State 模式的方式进行介绍。




控制反转(IoC)模式

在方法签名中使用控制反转(IoC)
控制反转(IoC)模式通常用于组件。本文描述了如何对方法签名使用该模式,以减少组件间的耦合并改善性能。IBM Global Business Services 顾问 Andr Fachat 用两个例子展示了这种方法的灵活性。




Single Call 模式

Single Call 模式
在本文中,作者向大家讲述了 Single Call 模式的原理,同时也介绍了 Single Call 模式的实现问题。




其它模式

Java 设计模式 201:超越四人组
您可以在本教程中发现,到底还有多少设计模式您不知道。首先,我们会探讨一些资源,学习设计模式的新手通常会忽略它们。这些资源为各种计算领域(如商业应用程序、Web 应用程序,甚至 Web 设计)提供了极为有用的模式。

界面组装器模式
本文提出了一种界面设计中的架构模式-界面组装器模式,它致力于分解界面,将界面和组装行为解耦,将界面逻辑处理与领域逻辑处理解耦,这样我们在开发 GUI 胖客户端界面应用时可以从众多的界面控制管理中解脱出来,而专注于我们的后台业务逻辑的开发。通过该模式,我们可以动态地组装我们的界面,我们甚至还可以在我们的界面中轻松地插入 transaction 事务或 session 会话管理。

数据校验器架构模式组
本文阐述软件架构与设计模式,它为架构师和开发人员提供了一组关于数据校验的架构模式(隔离校验器,可组装校验器,动态策略校验器,动态注册校验器等),数据校验是任何类型的开发中都不可或缺的环节,如果没有统一的架构,可能校验代码会遍布整个应用,如何将数据校验与应用逻辑解耦,如何适应各种粒度的数据和各种复杂程度业务规则,正是本文要探讨的。




反模式

反模式可以如何提高编程
设计模式对软件开发来说很重要,这一点从它在技术贸易新闻中所占的数量就可见一斑。不过,鉴于其在开发过程中的实用性,设计模式只解决了问题的一半。反模式 ― 描述“对产生绝对负面结果的问题的一种常用解决方案” ― 旨在通过向 Java 程序员展示如何避免常见的 Java 陷阱来解决问题的另一半。




从 Java 类库看设计模式

从 Java 类库看设计模式,第一部分
在这一部分的内容中,介绍的是一个相对简单但功能强大的模式:Observer 模式。希望通过这部分地叙述,大家看了之后,能够对设计模式有一个比较全面地,感性的认识。

从 Java 类库看设计模式,第二部分
这部分及以后的内容,将会步入正题,从 Java 类库的分析入手,来阐叙设计模式是如何应用到一个完美的设计中的。实际上,Java 类库非常的庞杂,这儿不可能把所有能够找到的设计模式的例子一一列举,只是找了一些容易发现的例子。实际上也没有必要,因为只要对一个设计模式有足够的理解,对于它的具体应用而言,倒是一件不是很困难的事情。

从 Java 类库看设计模式,第三部分
主要介绍几个结构型的模式如 Bridge 模式和 Decorator 模式。对于 Bridge 模式可能需要更多的理解,因为它在很大程度上说,例示了设计模式的基本的设计思路和原则。

从 Java 类库看设计模式,第四部分
在上一部分中,介绍了两个结构型的模式:Bridge和Decorator。这一部分的内容,将会接着上面的讲解,继续我们的设计模式之旅。

从 Java 类库看设计模式,第五部分
有了前面诸多设计模式的基础,这儿可以提出一个比较特殊的模式 MVC。MVC并不属于 GOF 的 23 个设计模式之列,但是它在 GOF 的书中作为一个重要的例子被提出来,并给予了很高的评价。一般的来讲,我们认为GOF的23个模式是一些中级的模式,在它下面还可以抽象出一些更为一般的低层的模式,在其上也可以通过组合来得到一些高级的模式。MVC就可以看作是一些模式进行组合之后的结果(实际上,MVC的出现要早于设计模式的提出,这而只是对它在设计模式的基础上进行在分析)。如果没有前面的基础,理解MVC或许会有一些困难。




使用设计模式改善程序结构

使用设计模式改善程序结构(一)
设计模式是对特定问题经过无数次经验总结后提出的能够解决它的优雅的方案。但是,如果想要真正使设计模式发挥最大作用,仅仅知道设计模式是什么,以及它是如何实现的是很不够的,因为那样就不能使你对于设计模式有真正的理解,也就不能够在自己的设计中正确、恰当的使用设计模式。本文试图从另一个角度(设计模式的意图、动机)来看待设计模式,通过这种新的思路,设计模式会变得非常贴近你的设计过程,并且能够指导、简化你的设计,最终将会导出一个优秀的解决方案。

使用设计模式改善程序结构(二)
在本系列的第一篇文章中,描述了如何通过设计模式来指导我们的程序重构过程,并且着重介绍了设计模式意图、动机的重要性。在本文中我们将继续上篇文章进行讨论,这次主要着重于设计模式的适用性,对于设计模式适用性的掌握有助于从另一个不同的方面来判断一个设计模式是否真正适用于我们的实际问题,从而做出明智的选择。

使用设计模式改善程序结构(三)
设计模式在某种程度上确实能够改善我们的程序结构,使设计具有更好的弹性。也正是由于这个原因,会导致我们可能过度的使用它。程序结构具有过度的、不必要的灵活性和程序结构没有灵活性一样都是有害的

设计模式 Java 建模

Factory Method 模式
Singleton 模式
Observer 模式
State 模式
控制反转(IoC)模式
Single Call 模式
其它模式
反模式
从 Java 类库看设计模式
使用设计模式改善程序结构



本专题为 Java 软件工程师们提供了面向 Java 的设计模式和建模方面相关的文章和教程。帮助读者理解、学习作为专业软件工程师必需掌握的设计模式与建模技术。


Factory Method 模式

Factory Method 模式在 Javamail 中的应用
设计模式在软件工程中占有重要地位,而 JavaMail 是 Java 平台的一个扩展,为管理电子邮件提供了统一的应用编程接口。本文讨论 Factory Method 设计模式在Javamail 中的应用。

在 Java 中应用设计模式 - Factory Method
在设计模式中,Factory Method也是比较简单的一个,但应用非常广泛,EJB,RMI,COM,CORBA,Swing中都可以看到此模式的影子,它是最重要的模式之一。在很多地方我们都会看到xxxFactory这样命名的类,那么,什么是Factory Method,为什么要用这个模式,如何用Java语言来实现该模式,这就是本文想要带给大家的内容。

Factory 模式的优点
最常见的构造一个 Object 的方法是通过构造函数. 例: String strTemp = new String('Hello World'); 其实还有一种一种更灵活的创建Object 的方式---利用Factory 模式. 这是著名的'四人帮'(Gangs Of Four)的经典之作'设计模式'[(Design Pattern) 所记载的23模式之一. 它有着构造函数不可比拟的一些优点.




Singleton 模式

在 Java 中应用设计模式 -- Singleton
本文介绍了设计模式中 Singleton 的基本概念,对其功能和用途进行了简单的分析,列出了通常实现 Singleton 的几种方法,并给出了详细的Java 代码。




Observer 模式

Observer 模式在 J2EE 中的实现
设计模式是经验的文档化。它是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述。更通俗的来说,它是一个问题/解决方案对。一旦我们掌握了设计模式,就等于拥有了一支强有力的专家队伍。它甚至能够使面向对象的新手利用前人的经验找出职责明确的类和对象,从而获得优雅的解决方案。




State 模式

State 模式在客户端软件中的应用
在对一个 J2EE 项目的重构、增加新功能的过程中,对客户端 GUI 程序,我们使用了 State 模式。结果显示,该模式的使用,不但减少了客户端 GUI 程序的程序规模(LOC),而且,该部分的开发及单元测试时间大大减少,同时,在集成测试中发现的缺陷数量比使用该模式前平均减少了3倍。本文就该项目中使用 State 模式的方式进行介绍。




控制反转(IoC)模式

在方法签名中使用控制反转(IoC)
控制反转(IoC)模式通常用于组件。本文描述了如何对方法签名使用该模式,以减少组件间的耦合并改善性能。IBM Global Business Services 顾问 Andr Fachat 用两个例子展示了这种方法的灵活性。




Single Call 模式

Single Call 模式
在本文中,作者向大家讲述了 Single Call 模式的原理,同时也介绍了 Single Call 模式的实现问题。




其它模式

Java 设计模式 201:超越四人组
您可以在本教程中发现,到底还有多少设计模式您不知道。首先,我们会探讨一些资源,学习设计模式的新手通常会忽略它们。这些资源为各种计算领域(如商业应用程序、Web 应用程序,甚至 Web 设计)提供了极为有用的模式。

界面组装器模式
本文提出了一种界面设计中的架构模式-界面组装器模式,它致力于分解界面,将界面和组装行为解耦,将界面逻辑处理与领域逻辑处理解耦,这样我们在开发 GUI 胖客户端界面应用时可以从众多的界面控制管理中解脱出来,而专注于我们的后台业务逻辑的开发。通过该模式,我们可以动态地组装我们的界面,我们甚至还可以在我们的界面中轻松地插入 transaction 事务或 session 会话管理。

数据校验器架构模式组
本文阐述软件架构与设计模式,它为架构师和开发人员提供了一组关于数据校验的架构模式(隔离校验器,可组装校验器,动态策略校验器,动态注册校验器等),数据校验是任何类型的开发中都不可或缺的环节,如果没有统一的架构,可能校验代码会遍布整个应用,如何将数据校验与应用逻辑解耦,如何适应各种粒度的数据和各种复杂程度业务规则,正是本文要探讨的。




反模式

反模式可以如何提高编程
设计模式对软件开发来说很重要,这一点从它在技术贸易新闻中所占的数量就可见一斑。不过,鉴于其在开发过程中的实用性,设计模式只解决了问题的一半。反模式 ― 描述“对产生绝对负面结果的问题的一种常用解决方案” ― 旨在通过向 Java 程序员展示如何避免常见的 Java 陷阱来解决问题的另一半。




从 Java 类库看设计模式

从 Java 类库看设计模式,第一部分
在这一部分的内容中,介绍的是一个相对简单但功能强大的模式:Observer 模式。希望通过这部分地叙述,大家看了之后,能够对设计模式有一个比较全面地,感性的认识。

从 Java 类库看设计模式,第二部分
这部分及以后的内容,将会步入正题,从 Java 类库的分析入手,来阐叙设计模式是如何应用到一个完美的设计中的。实际上,Java 类库非常的庞杂,这儿不可能把所有能够找到的设计模式的例子一一列举,只是找了一些容易发现的例子。实际上也没有必要,因为只要对一个设计模式有足够的理解,对于它的具体应用而言,倒是一件不是很困难的事情。

从 Java 类库看设计模式,第三部分
主要介绍几个结构型的模式如 Bridge 模式和 Decorator 模式。对于 Bridge 模式可能需要更多的理解,因为它在很大程度上说,例示了设计模式的基本的设计思路和原则。

从 Java 类库看设计模式,第四部分
在上一部分中,介绍了两个结构型的模式:Bridge和Decorator。这一部分的内容,将会接着上面的讲解,继续我们的设计模式之旅。

从 Java 类库看设计模式,第五部分
有了前面诸多设计模式的基础,这儿可以提出一个比较特殊的模式 MVC。MVC并不属于 GOF 的 23 个设计模式之列,但是它在 GOF 的书中作为一个重要的例子被提出来,并给予了很高的评价。一般的来讲,我们认为GOF的23个模式是一些中级的模式,在它下面还可以抽象出一些更为一般的低层的模式,在其上也可以通过组合来得到一些高级的模式。MVC就可以看作是一些模式进行组合之后的结果(实际上,MVC的出现要早于设计模式的提出,这而只是对它在设计模式的基础上进行在分析)。如果没有前面的基础,理解MVC或许会有一些困难。




使用设计模式改善程序结构

使用设计模式改善程序结构(一)
设计模式是对特定问题经过无数次经验总结后提出的能够解决它的优雅的方案。但是,如果想要真正使设计模式发挥最大作用,仅仅知道设计模式是什么,以及它是如何实现的是很不够的,因为那样就不能使你对于设计模式有真正的理解,也就不能够在自己的设计中正确、恰当的使用设计模式。本文试图从另一个角度(设计模式的意图、动机)来看待设计模式,通过这种新的思路,设计模式会变得非常贴近你的设计过程,并且能够指导、简化你的设计,最终将会导出一个优秀的解决方案。

使用设计模式改善程序结构(二)
在本系列的第一篇文章中,描述了如何通过设计模式来指导我们的程序重构过程,并且着重介绍了设计模式意图、动机的重要性。在本文中我们将继续上篇文章进行讨论,这次主要着重于设计模式的适用性,对于设计模式适用性的掌握有助于从另一个不同的方面来判断一个设计模式是否真正适用于我们的实际问题,从而做出明智的选择。

使用设计模式改善程序结构(三)
设计模式在某种程度上确实能够改善我们的程序结构,使设计具有更好的弹性。也正是由于这个原因,会导致我们可能过度的使用它。程序结构具有过度的、不必要的灵活性和程序结构没有灵活性一样都是有害的

posted on 2009-10-22 17:27 李云泽 阅读(250) 评论(0)  编辑  收藏 所属分类: 设计模式


只有注册用户登录后才能发表评论。


网站导航: