设计模式学习历程
今天突发奇想,在道上开个贴,记录各道友学习设计模式的历程、心得。好了,话不多说,我先来说说最近学习的proxy、decorator、adapter、bridge等模式:
为什么会先提这几个呢?
这几个模式,单从uml图或者代码结构看来,两两相似。特别是proxy与decorator很多人都混了,包括我。于是我得出自己的结论:学习模式不只是停留在看懂代码,而是懂其意,也就是老师总提的道。
首先看看proxy与decorator,看了很多关于他们的介绍,虽然从字面上看区别了。但一直不能区分出他们在代码上的区别。直到最近想到了个很生动的例子:演员与替身演员。演员就是decorator,换了套衣服、换了外表就成新角色,还自始至终都是他本人;替身演员则是proxy,真正的演员不来做这些表演,由替身演员来完成。这样的理解,很快我能从概念与应用中区分开他们的用法了。
接下来,我们谈谈adapter与bridge,这两者不像proxy与decorator那么相似,但是也有几分相似。adapter是把两个不相关的类关联起来,通过适配者把被适配者给关联进来;而bridge是把对象抽象出其静态的共公部分与行为相分离,通过行为部分被关联到抽象的实例中。这个抽象的实例看起来很像适配者,而行为看起来很像被适配者,但是adapter模式中的被适配者与要适配出的对象一点关系都没有,bridge模式中的抽象与行为却是有关系的,同属于一个对象。
好了,今天先谈到这里,改天继续学习,继续更新,希望大家能给我更多的意见与建议并也一起参议!