面向对象程序

1.封装
属性私有
对外提供公有的getter/setter

2.类之间的关系------纵向关系:;比较清晰
继承 实现

  • 继承关系:父子关系--extends
    实现:类对接口的实现---implements
  • 横向关系:取决于语义

依赖

  • 双方的地位往往是独立平等的(地位)
    是偶尔的、临时性的、不频繁性的(依赖程度)
  • 代码层面的表现形式而言。往往是局部的变量
  • 类B以参数的形式传入类A的方法
    类B以局部变量的形式存在于类A的方法中
    类A调用类B的静态方法
    例子:游客和邮轮

关联

  • 双方的地位往往是独立的、平等的(地位)
    是长期的、稳定的、频繁的(依赖关系)
  • 代码层面的表现形式而言,关联往往以全局属性的形式存在

例子:员工和手机

聚合

  • 双方的地位不是平等的,是整体和部分之间的关系(地位)
  • 是长期的、稳定的、频繁的,这种关系比关联更强,以至于在形式上出现了整体和部分之间的关系。
    整体和部分都有自己的生命周期。
  • 代码层面的表现形式而言可参考关系
    例子;公司和员工

组合

  • 双方的地位不是平等的,是整体和部分之间的关系(地位)
  • 比聚合更强,部分的生命周期取决于整体,部分随着整体的消失而消失(依赖程度)
    -代码层面的表现形式而言可参考关联
  • 区分是聚合还是组合的核心点是在生命周期

例子:公司和部门

你可能感兴趣的:(面向对象程序)