3.4
SOLID 原则实践
- SOLID 原则概述
单一职责原则(SRP):一个类只负责一项职责
开放封闭原则(OCP):软件实体对扩展开放,对修改封闭
里氏替换原则(LSP):子类可替换父类,且不改变程序正确性 - 代码示例:违反与遵守 OCP 的对比
违反 OCP 的设计(硬编码报表类型)
python
运行
class ReportGenerator:
def generate(self, data, report_type):
if report_type == "pdf":
# 生成PDF报表的代码
print("生成PDF报表")
elif report_type == "excel":
# 生成Excel报表的代码
print("生成Excel报表")
遵守 OCP 的设计(抽象基类 + 子类扩展)
python
运行
from abc import ABC, abstractmethod
class ReportGenerator(ABC):
@abstractmethod
def generate(self, data):
pass
class PDFGenerator(ReportGenerator):
def generate(self, data):
print("生成PDF报表")
class ExcelGenerator(ReportGenerator):
def generate(self, data):
print("生成Excel报表")
使用时通过工厂模式创建实例
def create_generator(generator_type):
if generator_type == "pdf":
return PDFGenerator()
elif generator_type == "excel":
return ExcelGenerator()
- 实践价值
提高代码可维护性和扩展性
减少需求变更导致的代码修改风险
浙公网安备 33010602011771号