## 连载:面向对象葵花宝典:思想、技巧与实践(24) - 设计模型
完成领域类到软件类的转换,这就是面向对象领域设计阶段的主要任务。
经过领域模型的分析后,面向对象已经初具雏形,但领域类并不能指导我们进行编码工作,因为领域类只是从用例模型中提炼出来的反应业务领域的概念,而并不是真正意义上的软件类。
“革命尚未成功,同志还需努力”,我们需要再进一步,完成**领域类到软件类的转换**,这就是面向对象领域设计阶段的主要任务。
设计阶段是整个面向对象分析和设计的高潮阶段。在设计阶段中,我们将要输出设计模型,并且需要综合各种方法、技巧,运用十八般武艺,使出浑身解数,以求能够设计出满足各种需要的设计方案。
这也是最考验设计师功力的时候,因为设计并没有一个量化的标准,也没有一个标准答案,更多的时候需要设计师综合知识、技能、经验、灵感等因素,综合权衡而得出一个方案。世界上找不到两片相同的叶子,同样,你也找不到两个完全一样的设计方案。毫不夸张的说,面向对象的设计更多时候是一项艺术。
虽然我们说面向对象设计是一门艺术,但这并不意味着只有天才才能进行面向对象设计,面向对象设计也是有一定的规律和方法可寻的,我们将在接下来的章节逐一介绍。
## 【设计模型总览】
设计模型主要包含2部分内容:**静态模型、动态模型**,任何一个模型的缺失或者不完善,都将导致最终的设计质量不高,甚至可能导致最终的系统没有实现业务需求。
静态模型又可以称为“类模型”,主要关注系统的“静态”结构,描述了系统包含的类, 以及类的名称、职责、属性、方法,类与类之间的关系。
动态模型关注系统的“动态”行为,描述类本身的一些动作或者状态变化,以及类之间如何配合以完成最终的业务功能。只有结合静态模型和动态模型,我们才能够真正的将一个系统描述清楚。
静态模型和动态模型对于后续的编码也具有不同的指导意义。静态模型主要用于指导类的声明,包括类名称,属性名,方法名;而动态模型主要用于指导类的实现,主要就是每个方法内部的具体实现。
- 前言
- (1) - 程序设计思想的发展
- (2) - 面向对象语言发展历史
- (3) - 面向过程 vs 面向对象
- (4) - 面向对象是瑞士军刀还是一把锤子?
- (5) - 面向对象迷思:面向对象导致性能下降?
- (6) - 不要说你懂“类”
- (7) - “对象”新解
- (8) - “接口” 详解
- (9) - “抽象类” 详解
- (10) - “抽象” 详解
- (11) - “封装” 详解
- (12) - “继承” 详解
- (13) - “多态” 详解
- (14) - 面向对象开发技术流程
- (15) - 需求详解
- (16) - 需求分析终极目的
- (17) - 需求分析518方法
- (18) - 用例分析
- (19) - 功能点提取
- (20) - 用例图的陷阱
- (21) - SSD
- (22) - 领域模型
- (23) - 领域建模三字经
- (24) - 设计模型
- (25) - 类模型
- (26) - 类模型三板斧
- (27) - 动态模型设计
- (28) - 设计原则:内聚&耦合
- (29) - 高内聚低耦合
- (30) - SRP原则
- (31) - OCP原则
- (32) - LSP原则
- (33) - ISP原则
- (34) - DIP原则
- (35) - NOP原则
- (36) - 设计原则如何用?
- (37) - 设计模式:瑞士军刀 or 锤子?
- (38) - 设计模式之道
- (39) - 设计原则 vs 设计模式
- (40) - DECORATOR模式
- (完)- 书籍已经出版