UML的正确食用方式————正解!!

在开发中,类图可以反映类与类之间的关系,是面向对象(oo)开发最重要的工具,下面我们来看看类图的基础知识

在这里插入图片描述


  • 在这里插入图片描述
    • 第一行,表示的是类名,如果为斜线则类为抽象类
    • 第二行,表示的是类的属性,Person类有两个属性
    • 第三行,表示的是类的方法和行为
      +表示Public,-表示private,#表示protected
  • 接口
    在这里插入图片描述
    • 第一行,表示的是接口名
    • 第二行,表示的是接口的属性
    • 第三行,表示的是接口中的的方法和行为
      +表示Public,-表示private,#表示protected

类与接口之间的关系@[toc]

在这里插入图片描述

1.依赖关系(Dependence)

A类在使用时用到了B类,则A依赖于B

例如:

  • IDCard
public class IDCard {

}
  • Person
public class Person {

}
  • PersonDao
public class PersonDao {

}
  • Department
public class Department {

}
  • PersonServiceBean
public class PersonServiceBean {

	private PersonDao personDao;//类
	
	public void save(Person person){}
	
	public IDCard getIDCard(Integer personid){
		return null;
	}
	
	public void modify(){
		Department department = new Department();
	}
}
  • 用类图表示为
    在这里插入图片描述
    小结:
  1. 依赖是指在类中用到了某个类时,用到的关系为依赖
  2. 如果是类的成员属性
  3. 如果是方法的返回类型
  4. 是方法接收的参数类型
  5. 方法中使用到

2.泛化关系(generalization)

  • 泛化也就是extends,是依赖的特例
    例如:
  • DaoSupport
public class DaoSupport {
	
	public void save(Object entity){
		
	}
	
	public void delete(Object id){
		
	}

}
  • PersonServiceBean
public class PersonServiceBean extends DaoSupport{

}
  • 用类图表示
    在这里插入图片描述
    小结:
  1. 泛化关系实现上就是继承关系
  2. 如果A类继承了B类,那么A与B存在泛化关系

3.实现关系(Implementation)

  • 就是实现了某个类的接口,重写了接口的方法。
    例如:
  • PersonService【interface】
public interface PersonService {

	public void delete(Integer id);
}
  • PersonServiceBean
public class PersonServiceBean implements PersonService{

	public void delete(Integer id) {
		
	}
}
  • 类图表示
    在这里插入图片描述

4.关联关系(Association)

  • 实际上就是类与类之间的联系:如一对一,一对多

4.1 单向一对一关系

  • IDCard
public class IDCard {

}
  • Person
public class Person {
	
	private IDCard card;
	
}
  • 类图表示
    在这里插入图片描述
    4.2 双向一对一关系
  • Person
public class Person {
	
	private IDCard card;
	
}
  • IDCard
public class IDCard {
	
	private Person person;
	
}
  • 类图表示
    在这里插入图片描述

5.聚合关系(Aggregation)

  • 聚合表示的也就是整体和局部,整体和部分是可以分开的,它是关联关系的特例,具有关联的导航性和多重性。
  • 应用场景:一台电脑是由键盘(keyboard),显示器(monitor),鼠标组成的。
  • Monitor
public class Monitor {

}
  • Mouse
public class Mouse{

}
  • Computer
public class Computer {

	private Mouse mouse;
	private Monitor monitor;
	public void setMouse(Mouse mouse){
		this.mouse = mouse;
	}
	public void setMonitor(Monitor monitor){
		this.monitor = monitor;
	}
}
  • 类图表示
    在这里插入图片描述

6.组合关系(Composition)

  • 整体与部分的关系,但是整体与部分是不可分开的。

应用场景①:
Person与IDCard、Head,Head与Person是组合,IDCard与Person为聚合。

  • Head
public class Head{

}
  • IDCard
public class IDCard {

}
  • Person
public class Person {

    private IDCard card;
    private Head head = new Head();
}
  • 用类图表示
    在这里插入图片描述

应用场景②:
鼠标、显示器与计算机都不能分离

  • Mouse
public class Mouse{
}
  • Moniter
public class Moniter {
}
  • Computer
public class Computer {

    private Mouse mouse = new Mouse();//鼠标 与computer不可分离
    private Moniter moniter = new Moniter();//显示器和computer不可分离

    public void setMouse(Mouse mouse) {
        this.mouse = mouse;
    }

    public void setMoniter(Moniter moniter) {
        this.moniter = moniter;
    }
}
  • 类图形式
    在这里插入图片描述

以上就是UML中的类与类间的所有关系!

在这里插入图片描述

发布了47 篇原创文章 · 获赞 34 · 访问量 8866

猜你喜欢

转载自blog.csdn.net/weixin_42893085/article/details/105266195
今日推荐