码迷,mamicode.com
首页 > 其他好文 > 详细

类与类之间的关系学习总结

时间:2018-06-08 10:38:00      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:new   his   了解   interface   jpg   总结   元素   abs   dep   


类与类之间的关系,本身对于实现业务开发没有太大的用处。绝大部分码农干到退休也不用了解。

主要用于解析源码结构,梳理设计意图。

概览


类之间可描述的关系大概有下面几种:继承、实现、依赖、关联、聚合、组合关系。
总览图如下:

技术分享图片

示例


技术分享图片

  • 学习
    <<interface>>,表示学习是一个接口;

  • <<abstract>>,表示人是一个抽象类;

继承关系(inherit)


  • 继承关系为 is-a的关系;
  • 两个对象之间如果可以用 is-a 来表示,就是继承关系;
    eg: 程序员是人

表现:用于Interface和Interface之间,或者用于Class和Class之间

实现关系(Realitization)


  • 类实现接口中定义的方法;

表现: 用于Interface和Class之间

关联(association)


指的是模型元素之间的一种语义联系,是类之间的一种很弱的联系。
依赖、关联、聚合、组合都是关联。依赖是最弱的关联,其次是普通关联,接下来是聚合,组合是最强的关联。
关联强度: 组合 > 聚合 > 关联 > 依赖

聚合


  • 整体和个体之间的关系。是has-a的关系
  • 整体和部分可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享
    表现: 如果A由B聚合成,表现为A包含有B的全局对象,但是B对象可以不在A创建的时刻创建。

    class A{
    private B b;
    public A(B b){
        this.b = b;
    }
    }

组合


  • 一种contains-a的关系
  • 部分不能脱离整体而存在,整体的生命周期结束也就意味着部分的生命周期结束
    表现:如果A由B组成,表现为A包含有B的全局对象,并且B对象在A创建的时刻创建。
    ```
    class A{
    private B b;
    public A(){
    this.b = new B();
    }
    }
    依赖(Dependency)
    ---------------
    ----
  • 从字面理解的话,是说一个类用到了另一个类。
  • 这种使用关系是具有偶然性的、临时性的、非常弱的。
    表现:如果A依赖于B,则B体现为局部变量方法的参数、或静态方法的调用。
    class A{
    private B b;
    public setB(B b){
    this.b = b;
    }
    }
    在开发过程中,大量的用到了依赖关系。

类与类之间的关系学习总结

标签:new   his   了解   interface   jpg   总结   元素   abs   dep   

原文地址:https://www.cnblogs.com/snifferhu/p/9148020.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!