文章目录
一、依赖关系(Dependency)
只要是在类中用到了对方,那么他们之间就存在依赖关系。如果没有对方,连编译都通过不了。代码如下(示例):
package umllei;
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、在类的方法中使用到
* 这四种情况都可以称为依赖关系
*/
二、泛化关系(Generalization)
泛化关系实际上就是继承关系,他是依赖关系的特例。
代码如下(示例):
public abstract class DaoSupport {
public void save(Object entity) {}//方法
public void delete(Object id) {}//方法
}
public class PersonServiceBean extends DaoSupport {
}
三、实现关系(Implementation)
实现关系实际上就是A类实现B类,也是依赖关系的一种特例。
代码如下(示例):
package umllei;
public interface PersonService{
public void delete(Integer id);
}
package umllei;
public class PersonServiceBean implements PersonService {
@Override
public void delete(Integer id) {
System.out.println("");
}
}
四、关联关系(Association)
关联关系实际上就是类与类之间的联系,他是依赖关系的特例关联具有导航性:即双向关系或单向关系
关系具有多重性:如“1”(表示有且仅有一个),“0…”(表示0个或者多个),“0,1”(表示0个或者一个),“n…m”(表示n到m个都可以),"m.…*”(表示至少m个)。
代码如下(示例):
单向一对一关系:
public class Person {
private IDCard card;
}
public class IDCard{
}
双向一对一关系:
public class IDCard{
private Person person;
}
public class Person {
private IDCard card;
}
只要记住有单向和双向就行了。
五、聚合关系(Aggregation)
聚合关系(Aggregation)表示的是整体和部分的关系,但是整体与部分可以分开。聚合关系是关联关系的特例,所以他具有关联的导航性与多重性。
如:一台电脑由键盘(keyboard)、显示器(monitor),鼠标等组成;组成电脑的各个配件是可以从电脑上分离出来的,使用带空心菱形的实线来表示.
代码如下(示例):例如聚合关系
public class Computer {
private Mouse mouse;//鼠标可以和电脑分离
private Moniter moniter;//显示器也可以和电脑分离
public void setMouse(Mouse mouse) {
this.mouse = mouse;
}
public void setMoniter(Moniter moniter) {
this.moniter = moniter;
}
}
六、组合关系(Composite)
组合关系:也就是整体与部分的关系,但是整体与部分不可以分开。
组合关系就是用实心菱形箭头表示。
程序中有一种级联删除,简单理解就是删除一个类或者其他的时候,另一个也同时删除了,这就是级联删除。他们就是组合关系。
而组合关系呢,如果设定Mouse、Moniter和Computer是不可分离的,则升级为组合关系,代码如下:
public class Computer {
private Mouse mouse = new Mouse();
private Moniter moniter = new Moniter();
public void setMouse(Mouse mouse) {
this.mouse = mouse;
}
public void setMoniter(Moniter moniter) {
this.moniter = moniter;
}
}
如果关系可以分开,就是聚合,不可以分开就是组合。
版权声明:本文为qq_43968154原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。