《大话设计模式》学习总结,初步~

到目前为止学习设计模式已经了一个星期了,看得是《大话设计模式》这本书,书中讲的设计模式基本上可以理解,但是如果说要拿这些设计模式来应用的话。感觉还差一步,哪一步呢?可能是中间的一个抽象过程,就是还不太清楚如何进行抽象(因为这一部分尚未进行实战)。

      要理解设计模式得首先理解面向对象中的特性——封装、多态、继承。其实只要这三个内容理解好了,学习设计模式是没有难度的。仔细看一下设计模式中的所有的模式,无外乎就是将这三个特性进行组装,进行配合。就像是垒积木一样,给定类型的不限数量的积木,你可以任意的垒。但问题是怎样垒的好看,垒的结实?前人在不断地垒积木过程中发现凡是垒的好看的、结实积木建筑物总是有其内在规律的,于是便找到其中的规律,总结出来,然后就美其名曰:‘设计模式’。并且总结出来比较经典的23个设计模式。

      关于设计模式的内容我就不说了,网上都可以搜到的。我只说我在学习中的一些感悟,其实上一段已经通过比喻的方式说明了。现在更加直白的总结阐述一下。

      学习设计模式,基础必然是面向对象的特性,所以三个特性是必须要理解的。

封装——就是想法设法的将一个对象抽象出来,尽可能的同其他事物想独立。就好比是人吃饭一样,只要用嘴就可以了。人和饭是独立的,嘴是接口。

继承——就是为了实现代码的重用,因为大千世界,很多东西可能有类似的功能,或是结构基本相同。用继承就可以很方便的使用另外一个相似类中的代码,数据定义。

多态——是说在实现的时候,不同的对象可以通过相同的接口实现相同的动作。同一个对象也可以通过同一个接口实现不同的动作。(不太会描述)

理解了三个基本特性就可以进行下一步的学习了。

每一个设计模式其实都是对一种特定的问题求解时的比较好的算法(我不知道是不是最好的,因为每种设计模式都有其缺点)。在求解中总是以面向对象的思想和三个特性来考虑如何构造最优解。有了这样的认识就可以学习设计模式。并且在其中还有最重要的一点就是不要以某一设计模式为模式,这是我在学习设计模式中想到的,怎么理解呢,就是不要生搬硬套,任何一种模式不过是一个名字而已,其实其中真正的内涵还是面向对象的特性(我发现我一直在说这句话(*^__^*) )。就算是学完之后一个模式的名字也没记住,没有关系,只要深入理解设计模式内涵即可,知道如何用三大特性达到软件设计的最优解。

上面所说的其实只是我个人的理解。如果大家有什么不同的看法或是觉得我那个地方说的不合理,恳请您指出,拜谢……

你可能感兴趣的:(设计模式,算法)