时间过得真快啊,不知不觉又要周末了,借这个周末时间。把《浅谈设计模式的学习(下)》补上吧。
在《浅谈设计模式的学习(中)》中,说到了保持抽象的思维。接下来说一下第四点,做一个分享,也记录一下自己的学习历程。
4、学习设计模式,就不要把它看的太认真
设计模式是一个编程思想,它不是具体的代码套路。举个例子说明一下:
由于家传,接触到了一些中国的传统武术。当我与那些不懂传统武术的人交流的时候,他们总是认为中国的传统武术都是些套路、花架子,只是用来好看。在他们认为,两人打架,别人出拳又不是按照你的固定套路来,所以那些武术套路肯定没法用来实战。其实是怎么样呢?我想说他们太不了解中国传统武术了。其实传统武术不止套路,套路只是传统武术的一个练习身体协调等能力的辅助。其主要还是在思想。比如说,一动而无不动,就是让你调动全身动力来进行防御反击。学习传统武术就是把那些技击思想练到身上(当然,本人只是偶尔练练,还没那本事)。设计模式也是,它是一个在某些场景下的编程思想,或者说是思路。并不是固定套路。开发场景是多样的,这就要求你根据一定的思想合理的设计代码的结构。而不是一定要跟书上介绍的设计模式的代码结构一模一样。设计模式是思想层的东西,是抽象的,所以不用怕,它允许你多变灵活的使用,合理即可。不要把它看的太认真(不知道有没有人也跟我当初那样,认为必须写一个什么接口,然后怎么继承怎么组合调用才算是正确的设计模式)
好像无论怎么说,都显得很抽象。那就再来一个例子,用来跟上一遍文章中的那个责任链模式做一下比较来说明:
场景:模仿网络模型,数据包先经过tcp加上协议头后,再经过http加上http协议头后最后通过网络传输给对方。
第一步:几乎所有的设计模式都需要抽象出接口或者抽象类的,所以我们抽象出一个产生数据包的接口
1 public interface IPackageCreator { 2 3 public String createPackage(); 4 }