开放-封闭原则 OCP

开放-封闭原则 OCP

定义

在面向对象的设计语言中,开放-封闭原则 (Open Closed Principle)是最重要的一条原则,很多时候,一个程序具有良好的设计,往往说明它是符合开放-封闭原则的
开放-封闭原则最早是由 Eiffel 语言的设计者 Bertrand Meyer 在其著作 《Object-Oriented Software Construction》中提出的定义:
“软件实体(类、模块、函数)等应该是可以扩展的,但是不可修改”

含义

当需要改变一个程序的功能或者给这个程序增加新功能的时候,可以使用增加代码的方式,但是不允许改动程序的源代码
在现实生活中也有跟 开放-封闭原则相关的故事:
“有一家生产肥皂的大企业,从欧洲花巨资引入了一条生产线,这条生产线可以自动完成从原材料加工到包装成箱的整个流程,但美中不足的是,生产出来的肥皂有一定的空盒几率,于是老板又从欧洲找来一支专家团队,花费数百万元改造这一生产线,终于解决了生产出空盒肥皂的问题。
另一家企业也引入了这条生产线,他们同样遇到了空盒肥皂的问题,但他们的解决办法很简单,用一个大风扇在生产线旁边吹,空盒肥皂就会被吹走”
这个故事说明,相比修改源程序,如果通过增加几行代码就能够解决的问题,那这显然更加简单和优雅,而且增加代码并不会影响源系统的稳定,这个故事不是说明风扇的成本有多低,而是如果使用风扇这样简单的方式可以解决问题,根本没有必要去大动干戈地改造原有的生产线


开放-封闭原则 OCP
http://blog.climbed.online/2023/11/24/Web -- Knowledge is infinite/编程思想/设计原则和编程技巧/开放-封闭原则 OCP/
作者
Z.K.
发布于
2023年11月24日
许可协议