许多人都应该听过设计模式(Design pattern),或多或少有看过或者使用过设计模式,但在实际使用过程中总有一种心有余而力不足的感觉。这显然是对平面设计模式的理解有些偏颇或不够深入。首先不要讨论特定的模式,看看设计模式是什么。接下来就由小编为您介绍设计模式,什么是设计模式?
设计模式
软体模块应对扩展开放,对修改关闭。举个例子:当程序需要增加功能时,不能再对原来的代码进行修改,而是增加了代码,实现热插拔(热插拔:灵活地移除或增加功能,而不影响原始功能)。目标:该程序具有良好的扩展性,易于维护和升级。
在继承复用过程中,里氏替代原则是一个基本类,只有当派生类能够取代基类,并且软件单元的功能不受影响时,基类才能真正被重用,并且衍生类能够在基类的基础上添加新的行为。举个例子:球类最初是一种体育用品,其衍生类有篮球、足球、排球、羽毛球等,若衍生类取代原有的基类方法,如将体育用品改为食品(则影响软件单元的功能),则不符合里氏代换原则。目标:说明实现抽象的具体步骤。
面向界面编程,而非编程实现。以计算机系统为例,无论主板、CPU、存储器、硬件都是针对界面而设计的,如果按照设计实现,内存对应于某个品牌的主板,那么会出现换内存需要把主板换掉的尴尬。目标:减少模块之间的耦合。
使系统功能模块相对独立的实体应尽可能少地与其他实体相互作用。举个例子:一个类公开的公共属性或方法越多,修改所涉及的范围就越大,更改所产生的风险扩散就越大。目标:减少类间的耦合,减少对其它类的依赖。
这个原则是由RobertC.Martin(RobertC.Martin)在《敏捷软件开发:原则、模式和实践》中给出的。Martin指出,这一原则是在TomDeMarco和MeilirPage-Jones的著作中提出的。某个类只负责某一功能领域的相应职责,或者可以定义为:对于某一类,只能有一个导致其变化的原因。例证:原理简单到不需要举例!目标:减少类复杂度,增加可读性,增加可维护性。
“聚类”是从功能角度测量模块内部的连接,一个好的聚类模块应该只完成一件事情。对模块内部的功能联系进行了描述;耦合是对软件结构中模块之间相互连接的一种测量,而耦合强度取决于模块间接口的复杂程度、模块进入或访问某个模块的点以及通过接口的数据。以上就是小编为您介绍的设计模式,什么是设计模式?。
[免责声明]
文章标题: 设计模式,什么是设计模式?
文章内容为网站编辑整理发布,仅供学习与参考,不代表本网站赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请及时沟通。发送邮件至36dianping@36kr.com,我们会在3个工作日内处理。