《Java 核心技术卷1 第10版》学习笔记------ 类之间的关系

在类之间, 最常见的关系有
•依赖 (“ uses-a”)
•聚合(“ has-a”)
•继承(“ is-a”)


依赖( dependence ), 即“ uses-a” 关系, 是一种最明显的、 最常见的关系。例如, Order类使用 Account 类是因为 Order 对象需要访问 Account 对象查看信用状态。但是 Item 类不依赖于 Account 类, 这是因为 Item 对象与客户账户无关。因此, 如果一个类的方法操纵另一个类的对象,我们就说一个类依赖于另一个类。


应该尽可能地将相互依赖的类减至最少。 如果类 A 不知道 B 的存在, 它就不会关心 B的任何改变(这意味着 B 的改变不会导致 A 产生任何 bug )。用软件工程的术语来说, 就是让类之间的耦合度最小。


聚合(aggregation ), 即“ has-a” 关系, 是一种具体且易于理解的关系。 例如, 一个Order 对象包含一些 Item 对象。聚合关系意味着类 A 的对象包含类 B 的对象。
 

注释: 有些方法学家不喜欢聚合这个概念,而更加喜欢使用“ 关联” 这个术语。从建模的角度看, 这是可以理解的。 但对于程序员来说,“ has-a” 显得更加形象。喜欢使用聚合的另一个理由是关联的标准符号不易区分, 请参看表 4-1。

继承( inheritance ), 即“ is-a” 关系, 是一种用于表示特殊与一般关系的。 例如, RushOrdei •类由 Order 类继承而来。 在具有特殊性的 RushOrder 类中包含了一些用于优先处理的特殊方法, 以及一个计算运费的不同方法;而其他的方法, 如添加商品、 生成账单等都是从Order 类继承来的。一般而言, 如果类 A 扩展类 B, 类 A 不但包含从类 B 继承的方法,还会拥有一些额外的功能(下一章将详细讨论继承,其中会用较多的篇幅讲述这个重要的概念。)很多程序员采用 UML ( Unified Modeling Language, 统一建模语言)绘制类图,用来描述类之间的关系。图 4-2 就是这样一个例子。类用矩形表示,类之间的关系用带有各种修饰的箭头表示。表 4-1 给出了 UML 中最常见的箭头样式。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值