OOAD
OOAD(Object Orient Analysis Design,面向对象的分析和设计,面向对象分析与设计)是现代软件企业广为采用的一项有效技术。OOAD是根据OO的方法学,对软件系统进行分析和设计的过程。
OOA 分析阶段:
主要任务(What to do?):
建立针对业务问题的清晰视图 列出系统必须完成的核心任务 针对问题域建立公共词汇表 列出针对此问题域的最佳解决方案
OOD 设计阶段:
主要任务(How to do?):
如何解决具体的业务问题 引入系统工作所需的支持元素 定义系统的实现策略
OOP主要特征
抽象(abstract):
忽略掉一个对象或实体的细节而只关注其本质特征的过程 简化功能与格式 帮助用户与对象交互
封装(encapsulation):
隐藏数据与实现 提供公共方法供用户调用功能 对象的两种视图: 外部视图:对象能做的工作 内部视图:对象如何完成工作
继承(inheritance):
通过存在的类型定义新类型的机制 通常在两个类型之间存在”is a”或”kind of”的关系 通过继承可以实现代码重用,继承也是多态的基础
多态(polymorphism):
一个名称,多种形式 基于继承的多态 调用方法时根据所给对象的不同选择不同的处理方式
关联(association):
对象之间交互时的一种引用方式 当一个对象通过对另一个对象的引用去使用另外一个对象的服务或操作时,两个对象之间边尝试了关联
聚合(aggregation):
关联关系的一种,一个对象称为另外一个对象的组成部分 是一种关系较强的关联 两个对象之间存在”has a”的关系
组合(composition):
当一个对象包含另一个对象时,外部对象负责管理内部对象的生命周期的情况 关联关系中最为强烈的一种 内部对象的创建由外部对象自己控制 外部对象不存在是,内部对象也不能存在
内聚和耦合(cohesion && coupling):
内聚:度量一个类独立完成某项工作的能力 耦合:度量系统内或系统之间依赖关系的复杂度 设计原则:增减内聚,减少耦合
域模型
域模型是面向对象的。在面向对象术语中域模型也可成为设计模型。 域模型的组成:具有状态和行为的域对象,域对象之间的关系。 域对象之间的关系:
关联:
依赖:
如在Service层的类中调用实体时,构造实体类的实例并访问实体类的方法。
聚集:
一般化: