快速业务通道

Java语言单态创立性模式介绍 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22

Java语言单态创立性模式介绍

时间:2010-12-17

什么是模式

一个围棋下得好的人知道,好的"形"对于围棋非常重要。形是棋子在棋盘上的几何形状的抽象化。形就是模式(Pattern),也是人脑把握和认识外界的关键。而人脑对处理模式的能力也非常高超, 人可以在几百张面孔中一下子辨认出所熟悉的脸来,就是一个例子。

简而言之,在我们处理大量问题时,在很多不同的问题中重复出现的一种性质,它使得我们可以使用一种方法来描述问题实质并用本质上相同,但细节永不会重复的方法去解决,这种性质就叫模式。模式化过程是把问 题抽象化,在忽略掉不重要的细节后,发现问题的一般性本值,并找到普遍使用的方法去解决的过程。

发现模式是与研究模式同时发生的,发现一个新的模式很不容易。一个好的模式必须满足以下几点:

1、它可以解决问题。模式不能仅仅反映问题,而必须对问题提出解决方案。

2、它所提出解决方案是正确的,而且不是很明显的。

3、它必须是涉及软件系统深层的结构的东西,不能仅是对已有的模块的描述。

4、它必须满足人的审美,简洁美观。

换言之,一个美妙的东西不一定就是模式,但是一个模式必须是一个美妙的东西。

软件工程学的各个方面,诸如开发组织,软件处理,项目配置管理,等等,都可以看到模式的影子。但至今 得到了最好的研究的是设计模式和组织模式。在软件编程中使用模式化方法, 是在编程对象化之后才开始得到重视的。软件编程中模式化方法的研究,也是在九十年代才开始。

在面向对象的编程中使用模式化方法研究的开创性著作,是

Design Patterns - Elements of Reusable Object-Oriented Software, E.Gamma, R. Helm, R. Johnson, and J. Vlissides,1995, Addison-Wesley.

这四位作者通常被称为四人帮(Gang of Four, 或GoF)。(在这个词出现以后,很多西方商业炒作利用这个 路人皆知的词赚钱,有一个八十年代的美国四人乐队以此为队名。在英国政界更曾有好几个小帮派被称为四人帮。在这里大家使用这个词称呼这四个著名作者,带有戏虐成分。)

由于Java语言的特点,使得模式在Java语言的实现有自己的特点。Java语言是现今最普及的纯粹OOP的编程语言,使用Java语言编程的程序师平均的素质也相对比较高。这些程序师往往不满足于只是实现程序功能要求,他们常常想要在代码结构,编程风格,乃至解决问题的 思考方式上不断进取和自我完善。模式,就是在大量的实践中总结和理论化之后的优选的代码结构,编程风格, 及解决问题的思考方式。对模式的了解和掌握,是Java程序师提高自身素质的一个很好的方向。

作者在学习和工作中把自己的体会 总结下来,藉以与读者交流提高。

作者在后面会使用简单的UML(统一建模语言,Unified Modelling Languge)。由于市场上有很多介绍UML 的书,而作者在后面使用到的UML又极为简单,因此只在此作一极为简单的介绍,目的是让没有接触过UML的 读者能看懂后面的讲述。

Java语言单态创立性模式介绍 - 编程入门网

图1. UML的类图举例

在图1的类图中可以看出,表示类的框分成四层:类名,变量清单,函数清单和属性清单。变量名如是正体字,表明类是实的(Concrete,即可以实例化的类),变量名如是斜体字,表明类是抽象的。显然,我们在图中给出了一个实的类。

在图1的类ClassUML中,一个变量或函数(方法)左面如果有一个加(+)号,表示它是公开的, 左面如果有一个减(-)号,表示它是私有的,左面如果有一个井(#)号,表示它是保护的。

一个属性即由一个内部变量,一个赋值函数(mutator)和一个取值函数(accessor)组成的结构。

在类的方框的右上角里,通常还分两行写出类的父类和所实现的接口。在后面读者会看到例子。

在类与类之间,会有线条指明它们之间的关系。在类与类之间可以发生推广(与继承相反),依赖,累积和关联 等关系。在后面读者看到例子时作

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号