第9章:伟大的设计
核心观点
伟大的设计不是“复杂的架构”,而是「简单、灵活、可演进」——能适配需求变更,且让开发者容易理解和扩展。
关键知识点+Java场景落地
1. 模块化与高内聚低耦合
- 核心逻辑:将系统拆分为独立模块(如用户模块、订单模块),模块内部职责单一(高内聚),模块间通过接口通信(低耦合)。
- 实操落地:Java Web中用“领域驱动设计(DDD)”思想拆分模块,每个模块独立打包(如 user-service 、 order-service ),模块间通过Feign调用或消息队列通信,避免直接依赖数据库表。
2. 依赖注入(DI):解耦组件依赖 - 核心逻辑:不主动创建依赖对象,而是通过框架(如Spring)注入,降低组件间耦合,便于测试和替换。
- 实操落地:Java中用 @Autowired 或构造器注入依赖(推荐构造器注入,避免空指针),如 Service 层注入 Mapper , Controller 层注入 Service ,而非在 Service 中直接 new MapperImpl() 。
3. 开闭原则:对扩展开放,对修改关闭 - 核心逻辑:需求变更时,通过扩展代码(如新增类、实现接口)满足,而非修改原有稳定代码。
- 实操落地:Java中用“接口+实现类”实现扩展,如支付功能定义 PayService 接口,实现 AlipayServiceImpl 、 WechatPayServiceImpl ,新增银联支付时只需新增 UnionPayServiceImpl ,无需修改原有支付逻辑。