huawei
com广州大学华软软件学院软件工程系主讲教师:谭翔纬答疑时间:周三10:30-12:00周四9:00-12:00Tel:660028Email:txw@sise
com第五讲:开闭原则与里氏替换原则目录开放——封闭原则(OCP)OCP编程实例OCP原则实施要点Liskov替换原则Liskov原则实施要点总结开放——封闭原则(OCP)什么是软件开发过程中最不稳定的因素
——答案是需求
需求在软件开发过程中时时刻刻都可能发生变化
那么,如何灵活应对变化是软件结构设计中最重要也是最困难的一个问题
好的设计带来了极大了灵活性,不好的设计则充斥着僵化的臭味
所以我们要遵循——开放封闭原则OCP
开放——封闭原则(OCP)BertrandMeyer,面向对象技术大师,发明了Eiffel语言和按契约设计(DesignbyContract)的思想,名著《面向对象软件构造》的作者,法国工程院院士
目前,他除了担任Eiffel环境和工具开发公司ISE的CTO之外,还是爱因斯坦的母校苏黎世联邦工学院计算机科学系教授,担任软件工程项目主席,同时还在澳大利亚Monash大学任教
他于1988年提出了著名的开放——封闭原则(OCP)
开放封闭原则的现实意义开放封闭原则(OCP,OpenClosedPrinciple)是所有面向对象原则的核心
软件设计本身所追求的目标就是封装变化、降低耦合
而开放封闭原则正是对这一目标的最直接体现
其他的设计原则,很多时候是为实现这一目标服务的,例如后面将介绍的Liskov替换原则实现最佳的、正确的继承层次,就能保证不会违反开放封闭原则
OCP核心的思想是:软件实体应该是可扩展,而不可修改的
也就是说,对扩展是开放的,而对修改是封闭的
OCP特征软件实体(类、模块、函数等)应该是可扩展的,但是不可修改的
OCP有两大特征:对于扩展是开