• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

对设计模式学习的一点想法兼谈Facade模式

发布: 2008-5-04 14:26 | 作者: 不详 | 来源: 不详 | 查看: 77次 | 进入软件测试论坛讨论

领测软件测试网  对于设计模式,有太多过来人的忠告!“不能拿着捶子,到处都是钉子”,“不能为模式而模式”,“更加的不能错用模式”,“模式是处理变化的”等等。这些忠告会让初学者不知所措,就好比太多的选择是种负担!我想我还是简单的理解:设计模式是一种思想,不是技术,它指导的是设计。我想只要我们从设计的问题去运用它就够了!不管这种理解正不正确,当你涉入进去会让你从更宽泛的角度去再次的思考。

    《设计模式》言简意赅,是本很好的参考书,值得反复咀嚼与推敲!我没读过《设计模式精解》,听说是本很好的设计模式入门教材,同类的很多,但在GOF书的面前都成了“伪经”。我没有贬低的意思,它们的价值也是很大的,辅以实例有助于理解和运用。

    这次翻开《设计模式》,第一个让我感兴趣的是Facade模式!因为在设计多层应用系统时,各层之间的合作关系是比较复杂的,Facade模式就是帮助减弱各层之间耦合度的解决方案。因为它能为子系统中的一组接口提供一致的界面(更高层的接口),这个接口使得子系统更加容易使用。这个模式理解起来非常的简单,现实生活也有太多的例子,像各企事业单位都有信仿办公室,它给外部提供一个简单高效的窗口!你可能会想:我们可以越过它吗?现实生活中可以走后门儿,那Facade模式是不是也是这样呢?没错,Facade对外没有隐藏子系统提供的接口,外部对象可以越过它而直调用子系统提供的接口。那你可能会问:这还有什么意义呢?因为Facade模式提供易用性的同时没有限制通用性,当然这种情况你得权衡!应该提供尽量多的高层接口供客户使用。这样可以保证对外隐藏的子系统实现的变化更加容易!Delphi的VCL也有例子,在RemoteDataModule中我们就可以定义一些接口,供客户系统调用!它是个结构型模式,在框架中处理各层之间的关系时应该是个常用的模式。

    我不想为这个模式写个实例了,因为它的主要应用是在分层系统中,小例子有为模式而模式之嫌!我正准备为Delphi三层系统的开发设计一个参照框架(为什么是参照呢?因为我还做不到通用),里面将有Facade模式的身影!

    除了在设计开始时有考虑解决方案,可更多的时候我们不能应对所有未来出现的情况,更何况对于没有经验的设计人员。找到设计模式为我们提供的解决方案后,下一步是代码实现的问题!将现有代码根据模式改造成好的设计需要方法,这就是重构!它是一门技术,现在的IDE大多有提供,设计模式为重构提供了目标(引自GOF)。我们也应该学习它!

 

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: 模式 设计 学习 Facade


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网