设计模式学习笔记1:对设计模式学习的一点想法兼谈Facade模式

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

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

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

我不想为这个模式写个实例了,它的目的就是降低接口复杂度!我正准备为Delphi三层系统的开发设计一个参照框架(为什么是参照呢?因为我还做不到通用),里面将有Facade模式的身影!

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值