Open/Closed Principle指出,应该打开一个模块(例如类,功能等)以进行扩展,但要封闭以进行修改。换句话说,应该以这样的方式设计模块,以使其可以轻松地扩展而不更改其现有代码。
这是Python中的一个示例:
在此示例中,Shape
类是一个抽象基类,定义了所有形状的接口,而Circle
和Rectangle
类从中继承并提供了区域方法的具体实现。 calculate_area
函数列出了形状列表,并通过调用每个形状的区域方法来计算总面积。
通过使用继承和抽象基类,可以扩展现有代码以支持新形状,而无需修改现有代码。例如,如果我们想添加一个方形形状,我们可以简单地创建一个从Shape
and继承的Square
类,提供该区域方法的实现。由于现有代码保持关闭以进行修改,这遵守了开放/封闭的原则,而可以通过扩展添加新功能。
Python
Design Patterns
Clean Code Studio
Python Design Patterns
Python Open Closed Principle Design Pattern
Open Closed Principle (OCP)