【Java基础知识 - 05】OOAD详解

OOAD是根据OO的方法学,对软件系统进行分析和设计的过程。

  • OOA —— 分析阶段
  • OOD —— 设计阶段

定义OOA阶段

分析阶段主要解决以下问题

  • —— 建立针对业务问题域的清晰视图
  • —— 列出系统必须要完成的核心任务
  • —— 针对问题域建立公共词汇表
  • —— 列出针对此问题域的最佳解决方案

此阶段要解决的核心问题是“What to do?”


定义OOD阶段

设计阶段主要解决以下问题

  • —— 如何解决具体的业务问题
  • —— 引入系统工作所需的支持元素
  • —— 定义系统的实现策略

此阶段要解决的核心问题是“How to do?”


OOP的主要特征
  • 抽象(abstract)
  • 封装(encapsulation)
  • 继承(inheritance)
  • 多态(polymorphism)
  • 关联(association)
  • 聚合(aggregation)
  • 组合(composition)
  • 内聚与耦合(cohesion & coupling)


抽象

  • 忽略掉一个对象或实体的细节而只关注其本质特征的过程
  • 简化功能与格式
  • 帮助用户与对象交互


封装

  • 隐藏数据和实现
  • 提供公共方法供用户调用功能
  • 对象的两种视图
  • —— 外部视图:对象能做的工作
  • —— 内部试图:对象如何完成工作


继承

  • 通过存在的类型定义新类型的机制
  • 通常在两个类型之间存在“is a”或“kind of”这样的关系
  • 通过继承可实现代码重用,另外继承也是多态的基础
  • 如苹果“is a”水果


多态

  • 一个名称,多种形式
  • 基于继承的多态
  • 调用方法时根据所给对象的不同选择不同的处理方式
  • Football —— play():使用脚来完成
  • Basketball —— play():使用手来完成
  • 给出一个具体的足球或篮球,用户自动知道该使用谁的方式去执行play()


关联

  • 对象之间交互时的一种引用方式
  • 当一个对象通过对另一个对象的引用去使用另一个对象的服务或操作时,两个对象之间便产生了关联
  • 如person使用computer,person与computer之间就存在了关联关系


聚合

  • 关联关系的一种,一个对象成为另外一个对象的组成部分
  • 是一种关系较强的关联
  • 在两个对象之间存在“has a”这样的关系,一个对象作为另一个对象的属性存在,在外部对象被生产时,可由客户端指定与其关联的内部对象
  • 如汽车和轮胎,轮胎作为汽车的一个组成部分,它和汽车可以分别生产以后装配起来使用,但汽车可以换新轮胎,轮胎也可以卸下来给其他汽车使用


组合

  • 当一个对象包含另一个对象时,外部对象负责管理内部对象的声明周期的情况
  • 关联关系中最为强烈的一种
  • 内部对象的创建由外部对象自己控制
  • 外部对象不存在时,内部对象也不能存在
  • 如电视机与显示屏




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值