在面向对象设计中,会为单个对象分配一组范围较窄的职责。职责驱动设计(Responsibility-driven design)同样适用于更大的范围。
如果每个对象的职责都要靠个人的“手艺”来分配,那么就会缺乏统一的指导原则,因此也就无法共同处理大规模的领域。为了使大型模型具有一致性,有必要引入一定的结构,用于对职责的分配。
因此:
观察模型中概念的依赖关系,以及领域中不同部分发生变化的频率和原因。如果识别出了领域中的自然分层,就将这些层设计为广义的抽象职责。这些职责应说明系统的高层目的和设计。重构模型,使每个领域对象、聚合体和模块的职责都能整洁地归入某个层的职责中。