旗下导航:搜·么
当前位置:网站首页 > PHP教程 > 正文

开闭原则是指什么?【php教程】

作者:搜搜PHP网发布时间:2019-11-26分类:PHP教程浏览:85


导读:开闭准绳开闭准绳(OCP)是面向对象设想中“可复用设想”的基石,是面向对象设想中最主要的准绳之一,别的许多的设想准绳都是完成开闭准绳的一种手腕。1988年,勃兰特·梅耶...
开闭准绳

开闭准绳(OCP)是面向对象设想中“可复用设想”的基石,是面向对象设想中最主要的准绳之一,别的许多的设想准绳都是完成开闭准绳的一种手腕。

1988年,勃兰特·梅耶(Bertrand Meyer)在他的著作《面向对象软件组织(Object Oriented Software Construction)》中提出了开闭准绳,它的原文是如许:“Software entities should be open for extension,but closed for modification”。翻译过来就是:“软件实体应当对扩大开放,对修正关闭”。这句话说得稍微有点专业,我们把它讲得更浅显一点,也就是:软件体系中包括的种种组件,比方模块(Modules)、类(Classes)以及功用(Functions)等等,应当在不修正现有代码的基础上,引入新功用。开闭准绳中“开”,是指关于组件功用的扩大是开放的,是许可对其举行功用扩大的;开闭准绳中“闭”,是指关于原有代码的修正是关闭的,即不应当修正原有的代码。

遵照开闭准绳设想出的模块具有两个主要特性:

(1)关于扩大是开放的(Open for extension)。这意味着模块的行动是能够扩大的。当运用的需求转变时,我们能够对模块举行扩大,使其具有满足那些转变的新行动。也就是说,我们能够转变模块的功用。

(2)关于修正是关闭的(Closed for modification)。对模块行动举行扩大时,没必要修改模块的源代码或许二进制代码。模块的二进制可执行版本,无论是可链接的库、DLL或许.EXE文件,都无需修改。

完成要领

完成开闭准绳的症结就在于“笼统”。把体系的一切能够的行动笼统成一个笼统底层,这个笼统底层划定出一切的细致完成必需供应的要领的特性。作为体系设想的笼统层,要预感一切能够的扩大,从而使得在任何扩大情况下,体系的笼统底层不需修正;同时,因为能够从笼统底层导出一个或多个新的细致完成,能够转变体系的行动,因而体系设想对扩大是开放的。

我们在软件开辟的历程当中,一向都是首倡需求导向的。这就请求我们在设想的时刻,要异常清楚地相识用户需求,推断需求中包括的能够的变化,从而明白在什么情况下运用开闭准绳。

关于体系可变的部份,另有一个更细致的对可变性封装准绳(Principle of Encapsulation of Variation, EVP),它从软件工程完成的角度对开闭准绳举行了进一步的诠释。EVP请求在做体系设想的时刻,对体系一切能够发生变化的部份举行评价和分类,每个可变的要素都零丁举行封装。

我们在实际开辟历程的设想最先阶段,就要排列出来体系一切能够的行动,并把这些行动到场到笼统底层,根本就是不能够的,这么去做也是不经济的。因而我们应当实际的接收修正拥抱变化,使我们的代码能够对扩大开放,对修正关闭。

优点

假如一个软件体系相符开闭准绳的,那末从软件工程的角度来看,它最少具有如许的优点:

可复用性好。

我们能够在软件完成今后,依然能够对软件举行扩大,到场新的功用,异常天真。因而,这个软件体系就能够经由过程不停地增添新的组件,来满足不停变化的需求。

可维护性好。

因为关于已有的软件体系的组件,特别是它的笼统底层不去修正,因而,我们不必忧郁软件体系华夏有组件的稳定性,这就使变化中的软件体系有肯定的稳定性和延续性。

以上就是开闭准绳是指什么?的细致内容,更多请关注ki4网别的相干文章!

标签:开闭原则