zoukankan      html  css  js  c++  java
  • 第二节:类与类之间的关系

    一、依赖关系(Dependence

      只要是在 类中用到了对方,那么它们之间就存在依赖关系。如果没有对象,连编译都通过不了。

      Demo:

     1 public class PersonServiceBean {
     2     //
     3     private PersonDao personDao;
     4 
     5     public void save(Person person) {
     6     }
     7 
     8     public IDCard getIDCard(Integer personid) {
     9         return new IDCard();
    10     }
    11 
    12     public void modify() {
    13         Department department = new Department();
    14     }
    15 }
    16 
    17 public class PersonDao {}
    18 public class Person {}
    19 public class IDCard {}
    20 public class Department {}

      对应的类图:

       

       小结:

        1)类中用到了对方;

        2)如果是 类的成员属性;

        3)如果是方法的返回类型;

        4)是方法接收的参数类型;

        5)方法中使用到

    二、泛化关系(Generalization

      泛化关系实际上就是继承关系,它是依赖关系的特例

      Demo:

    1 public class DaoSupport {
    2     public void save(Object entity){}
    3     public void delete(Object id){}
    4 }
    5 
    6 public class PersonServiceBean extends DaoSupport{
    7 
    8 }

      对应的类图:

                                                    

      小结:

        1)泛化关系实际上就是继承关系

        2)如果 A 类继承了 B类,我们就说 A 和 B 存在泛化关系

    三、实现关系(Implementation

      实现关系实际上就是 A 类实现 B 接口,它是依赖关系的特例

      Demo:

     1 public interface PersonService {
     2 
     3     public void delete(Integer id);
     4 }
     5 
     6 public class PersonServiceBean implements PersonService {
     7     @Override
     8     public void delete(Integer id) {
     9         System.out.println("delete..");
    10     }
    11 }

      对应的类图:

               

    四、关联关系(Association

        关联关系实际上就是 类与类之间的联系,它是依赖关系的特例

        关联具有导航性:即双向关系或单向关系。

        关系具有多重性:如“1”(表示有且仅有一个),“0” (表示0个或者多个),“0,1”(表示0个或者一个),“n...m”(表示 n 到m个都可以),“m...*” (表示至少m个)。

        Demo:

     1 public class Person {
     2     private IDCard card;   //单向关系
     3     private Home home;  //双向关系
     4 }
     5 
     6 public class IDCard {}
     7 
     8 public class Home {
     9     private Person person;
    10 }

       对应的类图:

        

    五、聚合关系(Aggregation

      聚合关系表示的是 整体和部分的关系整体与部分可以分开

      聚合关系是关联关系的特例,所以它具有关联的导航性和多重性。

      如:一台电脑由键盘(keyboard)、显示器(monitor),鼠标等组成,组成电脑的各个配件是可以从电脑上分离出来的,使用带空心菱形的实线来表示。

      Demo:

     1 public class Computer {
     2     private Mouse mouse; //鼠标可以和computer分离
     3     private Moniter moniter;//显示器可以和Computer分离
     4     public void setMouse(Mouse mouse) {
     5         this.mouse = mouse;
     6     }
     7     public void setMoniter(Moniter moniter) {
     8         this.moniter = moniter;
     9     }
    10 }
    11 
    12 public class Moniter {}
    13 
    14 public class Mouse {}

      对应的类图:

              

    六、组合关系(Composition

      如果像人和头部,心脏不可分离的,则升级为组合关系。

      组合关系:也是整体与部分的关系,但是整体与部分不可以分开。

      案例:在程序中我们定义实体: PersonIDCardHead, 那么 Head Person 就是 组合, IDCard Person 就是聚合。

      但是如果在程序中Person实体中定义了对IDCard进行级联删除,即删除Person时连同IDCard一起删除, 那么IDCard Person 就是组合了。

      Demo:

    1 public class Person {
    2     private IDCard card; //聚合关系
    3     private Head head = new Head(); //组合关系
    4 }
    5 
    6 public class IDCard {}
    7 
    8 public class Head {}

      对应的类图:

             

      Demo2:

     1 public class Computer {
     2     /**鼠标可以和computer不能分离**/
     3     private Mouse mouse = new Mouse();
     4     /**显示器可以和Computer不能分离**/
     5     private Moniter moniter = new Moniter();
     6     public void setMouse(Mouse mouse) {
     7         this.mouse = mouse;
     8     }
     9     public void setMoniter(Moniter moniter) {
    10         this.moniter = moniter;
    11     }
    12 }
    13 
    14 public class Mouse {}
    15 
    16 public class Moniter {}

       对应的类图:

          

  • 相关阅读:
    再提一个建议,不过就要辛苦dudu了
    项目中的小项目实现在望
    Visual Studio.Net 技术Tip
    IQueryable与foreach的困惑?
    [转贴]浅析大型网站的架构
    [原创]WCF入门级使用教程(转载请注明出处)
    [原创]在msmq3.0中使用http协议发送消息
    [转贴][WCF Security] 4. 用户名/密码身份验证
    [转贴][WCF Security] 1. 基本概念
    [转]在SQL Server2005中进行错误捕捉
  • 原文地址:https://www.cnblogs.com/niujifei/p/14219210.html
Copyright © 2011-2022 走看看