[设计模式]2.绪论

一、什么是设计模式

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式使代码开发真正工程化,设计模式是软件工程的基石脉络,如同大厦的结构一样。只有夯实地基搭好结构,才能盖好坚壮的大楼。
项目中合理地运用设计模式可以完美地解决很多问题,每种模式在现实中都有相应的原理来与之对应,每种模式都描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案。

二、设计模式的三大分类

创建型模式(Creational Patterns):对象实例化的模式,创建型模式用于解耦对象的实例化过程。
结构型模式(Structural Patterns):把类或对象结合在一起形成一个更大的结构。
行为型模式(Behavioral Patterns):类和对象如何交互,及划分责任和算法。

img

三、设计模式的七大原则

它们分别为开闭原则、里氏替换原则、依赖倒置原则、单一职责原则、接口隔离原则、迪米特法则和合成复用原则。
这些原则的目的只有一个:降低对象之间的耦合,增加程序的可复用性、可扩展性和可维护性。

四、学习设计模式的境界

《五灯会元》卷十七中,有一则唐朝禅师青原惟信禅师的语录:“老僧三十年前未参禅时,见山是山,见水是水。及至后来亲见知识,有个入处,见山不是山,见水不是水。而今得个休歇处,依前见山只是山,见水只是水。”

a) 仔细研究GoF的[设计模式],逐个学习其意图和结构,是一个抱着字典学习英语的方式。见山是山,见水是水,导致你可能在实际工作中生搬硬套、东施效颦。

b) 建议从简单的场景出发,自己发现或设计出某种模式。你从中体会该模式是如何解决问题的,这样,该模式成为你自己的东西,你才不会出现知易行难的问题。所有的设计模式不过是基本原则和理念在特定场合的应用。你可能不知道某个设计模式的名字,但是你知道它一切的优缺点和变体以及应用场合。见山不是山,见水不是水。

c) 你对基本原则和理念融会贯通,你可以惋惜:“我找到一种模式,原来在设计模式中早就有了这种模式”。这时,模式不模式又如何呢?反模式又怎样。看见一个模式,你会说:“嗯,这是一种有用的模式”。见山只是山,见水只是水。


第一种是学习了一两个设计模式,就一直想用到自己的代码中去;

第二种是学完全部设计模式,觉得很多模式都很相似,分不清楚它们之间有什么区别;

第三种是灵活运用设计模式,就算不用具体哪种模式也可以设计也高质量的代码,无剑胜有剑。

参考链接:
https://www.cnblogs.com/pony1223/p/7608955.html
http://c.biancheng.net/view/8508.html

posted @ 2021-05-04 16:06  yu10001  阅读(45)  评论(0编辑  收藏  举报