3.4

SOLID 原则实践

  1. SOLID 原则概述
    单一职责原则(SRP):一个类只负责一项职责
    开放封闭原则(OCP):软件实体对扩展开放,对修改封闭
    里氏替换原则(LSP):子类可替换父类,且不改变程序正确性
  2. 代码示例:违反与遵守 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()

  1. 实践价值
    提高代码可维护性和扩展性
    减少需求变更导致的代码修改风险
posted @ 2025-03-04 21:43  Echosssss  阅读(12)  评论(0)    收藏  举报