【模式语言管理参考资料】从面向对象到模式再到真正的面向对象.docxVIP

【模式语言管理参考资料】从面向对象到模式再到真正的面向对象.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【模式语言管理参考资料】从面向对象到模式再到真正的面向对象.docx

从面向对象到模式再到真正的面向对象Alan Shalloway 著 透明 译都说他山之石可以攻玉,今天阅读这篇文章,对模式语言管理与和谐生产方式的研究的启发的确非常大,“面向对象”与“模式”的关系,正是如同和谐生产方式原理与模式语言管理的关系。文中的很多说明可以直接运用到模式语言管理上来(我在文中作了加粗标识)。——张西振,2010-8-13(译序:Design Patterns Explained: A New Perspective on Object-Oriented Design一书的前言部分。通过,读者可以大概了解学习设计模式的过程和效果。同时,谦虚谨慎的态度也是非常值得我们中国软件开发者学习的。)  这本书的很多地方都复述了我自己学习设计模式的经验。在学习设计模式之前,我认为自己理所当然是面向对象分析和设计的专家。我曾经为各种行业的客户做过一些还算给人深刻印象的设计和实现。我会使用C++并且已经开始学习JAVA。我的代码中的对象格式优美封装紧密。我可以在继承体系中设计优秀的数据抽象。我想我已经懂得面向对象了。  现在回头看看,我发现那时其实我还根本不知道面向对象设计的全部能力, 尽管我一直按照专家建议的方式来做。直到我开始学习设计模式,我的面向对象设计能力才得到了扩展和深化。学习设计模式使我成为了一个更好的设计者,甚至是我还没有直接使用那些模式的时候。 我从1996年开始学习设计模式。当时我正在西北部一家大型航天公司担任C++/面向对象设计顾问。有几个人劝说我领导一个设计模式学习组。正是在那里我遇到了本书的另一个Jim Scott。在那个学习组中发生了几件有趣的事情。首先,我开始对设计模式着迷。我可以把自己的设计和其他更有经验的人的设计相比较,我爱上了这种感觉。另一方面,我发现我并没有完全做到对接口做设计,也没有随时注意一个对象是否可以在不知道另外对象的类型的情况下使用另外对象。同时我注意到,那些面向对象的初学者--通常他们被认为过早开始学习设计模式--从这个学习组得到的收益与那些面向对象的专家不相上下。设计模式向学习者展现出优秀的面向对象设计实例并阐述基本的面向对象设计原则,而这些使学习者的设计更快地成熟起来。在整个学习进程结束之后,我确信:设计模式,这是面向对象设计被发明之后软件设计中最好的东西。 但是,看看那个时候我自己的工作,我发现我根本还没有在自己写的代码中结合任何一个设计模式。 当时我只是认为自己还没有学到足够的设计模式,还需要学习更多。那时候,我只知道六个设计模式。然后我可以说是得到了顿悟。我在一个项目中担任面向对象设计顾问,并需要为这个项目创建一个高层设计。这个项目的领导人极其聪明,但在面向对象设计领域,他可以说是一个新手。 这个问题本身并不困难,但需要非常注意确保代码容易维护。按照惯例,在看过问题两分钟之后,我便有了一个设计——采用了我常用的数据抽象的途径。很不幸的是,很显然这不会是一个好的设计。简单的数据抽象已经让我尝到过失败的滋味。我必须找到一些更好的设计思路。 两个小时过去了。在使用了我所知道的所有设计技术之后,情况仍然没有好转。我的设计基本上都还是和从前一样。而最让我感觉受挫的是,我知道一定有一个更好的设计,但我就是找不到它。更具讽刺意义的是,我甚至还知道四个设计模式就生活在我的问题中,但我看不出应该如何使用它们。在这里,我,一个被认为是面向对象设计专家的人,被一个简单的问题困住了! 我实在觉得很受挫,于是我停了下来,开始绕墙行走以清醒头脑,并告诉自己:至少10分钟里我不再想这个问题。呵呵,30秒之后,我又开始想它了!但我获得了一种领悟并完全改变了我对设计模式的看法:设计模式无法作为独立的条款使用;我应该把设计模式放在一起使用。 模式是应该被结合在一起来共同解决一个问题的。 以前我曾经听到过这句话,但那时我并没有真正理解它。因为软件开发中的模式往往被介绍为设计模式,所以我总是在模式最主要的贡献是在设计阶段的假设下努力。我的想法是:在设计世界里,模式就好象是类之间优美的联系。然后,我阅读了Christopher Alexander那本令人惊讶的书--The Timeless Way of Building。我学到了:模式存在在所有的阶段--分析、设计以及实现--之中。Alexander在书中讨论了如何使用模式来帮助理解(乃至描述)问题领域,而不是仅仅在理解了问题领域后使用模式来创建一个设计。 我的错误是:我尝试先创建问题领域中的类,然后将这些类缝合起来形成最终的系统--lexander把这样的过程称为一个坏主意。我从来没有问过自己:我是否拥有正确的类?仅仅因为这些类看起来如此正确、如此明显。我拥有的,是在我开始分析时立刻进入了我的脑海的类,是我们的老师告诉我们应该在系统的描述中寻找的名词。

文档评论(0)

专业好文档 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6110200002000000

1亿VIP精品文档

相关文档