十二、类

54 阅读1分钟

📚类

🏗 类设计基本原则

  1. 单一职责原则 (SRP)

    • 一个类只应有一个修改理由
    • 检测方法:能用25个单词以内描述类的职责
  2. 内聚性

    // 低内聚 - 处理多种事务
    class UserService {
      void login() {}
      void sendEmail() {}
      void generateReport() {}
    }
    
    // 高内聚 - 拆分职责
    class UserAuth { void login() {} }
    class EmailService { void sendEmail() {} }
    

📏 类结构规范

代码量控制

  • 方法数量 ≤ 20个(建议)
  • 行数 ≤ 500行(建议)

排列顺序

  1. 公共静态常量
  2. 私有静态变量
  3. 私有实例变量
  4. 公共方法
  5. 私有方法(紧挨在使用它的公有方法后)

🔄 消除重复代码的层级

  1. 方法级重复 → 提取方法
  2. 类级重复 → 提取基类/工具类
  3. 系统级重复 → 建立独立服务

🚨 类设计坏味道

症状解决方法页码
超大类按职责拆分P168
特征依恋方法迁移到正确类P172
数据泥团封装成独立对象P175

⚙️ 实战技巧

Builder模式应用

# 代替多参数构造器
class ConnectionConfig:
    def __init__(self, builder):
        self.timeout = builder.timeout
        self.retries = builder.retries

    class Builder:
        def __init__(self):
            self.timeout = 30
            self.retries = 3
      
        def with_timeout(self, timeout):
            self.timeout = timeout
            return self

📌 关键引用

"类的第一个原则是短小,第二个原则是更短小" "好的类应该像一篇组织良好的文章,有明确的段落结构"

🔗 扩展工具

  • Java: Checkstyle(类复杂度检测)
  • Python: pylint(R0903检测过大类)
  • TypeScript: ESLint(max-classes-per-file)