- 软件设计的核心是职责分配和职责抽象。
- 职责分配和职责抽象在软件设计的各个层面都有涉及。在高层,架构分层和分区都属于职责分配;在底层, 如何定义类以及函数的归属都属于职责分配。
- 设计模式的精髓在于它从旧的设计方案中分离出了很多职责,有助于解决旧系统功能耦合比较强的问题
- 有的指责比较好发现,比如分层和分区以及类的职责定义,因为它属于功能级别的自然职责;但有的职责就不好确认了,比如使用设计模式分离出来的职责就比较难于处理,因为它属于算法类型的非自然职责。
- 职责分配不是一成不变的,不同的人在不同的时期可能有不同的认识;比如说在刚开始大家都没有意识到应该把项目中与流程有关的职责提取出来做成工作流系统,只是慢慢的在失败中琢磨出应该使用工作流来控制流程。