• Is-A,Has-A,Use-A(转载)


    原文地址:http://blog.csdn.net/loveyou128144/article/details/4749576
    而Is-A,Has-A,Use-A则是用来描述类与类之间关系的。简单的说Is-A代表继承,Has-A代表合成,Use-A代表依赖。

       Is-A继承关系:“表示类与类之间的继承关系、接口与接口之间的继承的关系以及类对接口实现的关系”。如:
    

    public abstract class A

    {

    ……

    }
    
    public class B : A
    
    {
    
        ……
    

    }

    B类继承自A类,那么B类和A类的关系就是Is-A的关系。

    Has-A合成关系:“是关联关系的一种,是整体和部分(通常为一个私有的变量)之间的关系,并且代表的整体对象负责构建和销毁代表部分对象,代表部分的对象不能共享”。如:

    public class Heart

    {
    
       ……
    
    }
    
    public class Man
    
    {
    
        private Heart heart = new Heart();
    
       ……
    

    }

    Man类和Heart类便是Has-A关系,人死的时候心也就死了(当然有心脏移植,不想抬杠,哈哈),人和心是一种比较强的拥有关系,并且心是不能共享的。

    Use-A依赖关系:“是类与类(通常为函数的参数)之间的连接,依赖总是单向的”。如

    public abstract class Course

    {
    
        ……
    
    }
    
    public class Student
    
    {
    
        public void Learn(Course course)
    
        {
    
           ……
    
        }
    

    }

    Student类和Course的关系就是Use-A关系,Student类总是单向指向Course,学生知道自己学的是什么课程,而课程根本不关心它被哪个学生学习。

    关于继承与组合Gof的《设计模式》中有很好的讨论,依赖关系现在很多人都提倡倒转的依赖,也是面向对象原则中的依赖倒转原则:要依赖于抽象(抽象类、接口或委托变量)不要依赖于具体。

  • 相关阅读:
    使用MyEclipse可视化开发Hibernate实例
    Query查询
    Java Filter过滤机制详解(转载)
    持久化对象的状态转换
    经典SQL语句大全
    持久对象的生命周期
    Mysql命令操作
    hibernate常用的接口和类的方法以及持久化对象的状态变化
    mysql的安装
    Visual C# 2008+SQL Server 2005 数据库与网络开发 10.8 小结
  • 原文地址:https://www.cnblogs.com/gjmfg/p/6163780.html
Copyright © 2020-2023  润新知