快速业务通道

Java设计模式(一) - 编程入门网

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

Java设计模式(一)

时间:2011-01-01 yeeyan 翻译:易晓斓

什么是设计模式?

如果一个问题一再地出现,就必须找到一个能够有效解决问题的方法。那个方法就被描述成模式。设计模式是独立于编程语言的,用来解决常见的,面向对象的设计问题的策略。当你实施设计的时候,你应该知晓一些常见的解决之道的名称。通晓设计模式可以使人们相互间做有效的交流。实际上,你可能已经对一些设计模式很熟悉了,你只是没有用大家耳熟能详的称谓来描述它们而已。太阳公司建议使用GOF(“四人帮”,指写了“设计模式-可重复使用的面向对象软件的元素”一书的四位先驱),所以我们应用那本书作为指导来描述解决之道。你也需要让自己对这些术语熟悉起来,看看别人是如何用它们来解决编程问题的。

一定要使用设计模式吗?

如果你希望成为一位Java的职业程序员,你至少应当晓得一些很流行的解决编码问题的方法。这些方法已被有经验的程序员在实践中证明非常有效。它们就是所谓的设计模式。学习设计模式可以加速你在OOA/OOD领域的经验积累。一旦你掌握了它们,你将会终生收益,并让自己成为设计和开发领域的大师。而且,你也可以使用这些术语和你的同行们更高效地交流。

许多有多年经验的程序员并不知道设计模式,但是作为一个OO的程序员,你必须熟知它们,特别是对那些新学Java的人。实际上,当你解决一个编程问题时,你就已经在使用设计模式了。你只是没有用一些流行的术语来称呼它们而已,或者没有选择一个有效地方法从知识产权的角度来更好地控制你的成果。学习有经验的开发人员是如何来解决编程问题的,并应用到你自己的项目上去是赢得经验和证明的最好方法。

记住,学习设计模式一定会改变你编程的方法;你不只是会变得睿智,你会变得非常的睿智。

有多少设计模式?

许多。一个网站上说在OO的领域中,至少有250种模式,包括“意大利面条”式(指低效糟糕的代码)。被GOF应用的23种设计模式广为人知,许多模式还在探索和发现中。

对了,提醒一句,设计模式不是术语,算法,或组件。

设计模式间的相互关系

一般来讲,建造一个系统,需要将许多设计模式编排在一起。不同的设计师可能使用不同的模式来解决同一个问题。通常来说:

一些模式间相处和谐

一个模式可以引发出另一个模式

一些模式很类似,可以相互替代

模式是可以被发现并文档化的

模式不是方法或架构

模式可以给出一些有效解决问题的提示

创建性模式

抽象工厂(Abstract Factory)定义

提供比工厂模式(Factory Pattern)高一级的接口。一般被用来返回多个工厂中的某一个工厂。

何时使用以及好处

创建了互相关联和依靠的家族型对象,比如Kit

提供了产品的类库,对外展示接口,而不是实施细节

将具体的类和它们的父类隔离开来

一个系统需要独立于它的产品的创建,组成,和表达

需要强制实施一个限制

在表面之外的另一个选择,可用来隐藏与平台有关的类

可以很容易的对一个系统和家族实施继承

与此相关的设计模式包括,

工厂方法(Factory Method),通常用抽象工厂的方法来实施

单例(Singleton),通常用抽象工厂的方法来实施

原型(Prototype),通常用抽象工厂的方法来实施

外观(Facade),通常与抽象工厂一同使用,来提供一个可以创建实施类的接口

Javaéè???£ê?£¨ò?£?(2)

ê±??:2011-01-01 yeeyan ·-ò?:ò×?tìμ

′ú???ùày

?ùéè??Dèòaò???3ìDò?ú2?í?μ?μ?·?à′??ê?êy?Y£?±èè?′ó±?μ?oí??3ìμ?êy?Y?a?£?úó?êy?Y′ò??μà???°£???Dèòa?¨á¢ò???oíêy?Y?aμ?á??ó?£?ú?a??caseà?£???óDá???????£?±?μ?êy?Y?aoí??3ìêy?Y?a?£???éò?ê1ó?ò???3é?ó1¤3§μ?

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号