目录
前言
本文为尚硅谷韩顺平老师的 Java 设计模式课程的笔记。
依赖关系(Dependence)
只要是在类中用到了对方,那么他们之间就存在依赖关系。如果对方不存在,则连编绎都不能通过。
class PersonServiceBean {
private PersonDao personDao;
public void save(Person person){}
public IDCard getIDCard(Integer personid){}
public void modify(){
Department department = new Department();
}
}
class PersonDao{}
class IDCard{}
class Person{}
class Department{}
对应的类图:
泛化关系(Generalization)
泛化关系实际上就是继承关系,它是依赖关系的特例。
如果 A 类继承了 B 类,我们就说 A 和 B 存在泛化关系。
abstract class DaoSupport{
public void save(Object entity){}
public void delete(Object id){}
}
class PersonServiceBean extends Daosupport{}
对应的类图:
实现关系(Implementation)
实现关系实际上就是 A 类实现 B 接口,他是依赖关系的特例。
public interface PersonService {
public void delete(Interger id);
}
public class PersonServiceBean implements PersonService {
public void delete(Interger id){}
}
对应的类图:
关联关系(Association)
聚合关系(Aggregation)
整体和部分的关系,整体与部分可以分开。
聚合关系是关联关系的特例,所以他具有关联的导航性与多重性。
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;
}
}
对应的类图:
组合关系(Composition)
整体与部分的关系,整体与部分不可以分开。
在程序中我们定义实体:Person 与 IDCard、Head,。
那么 Head 和 Person 就是组合,IDCard 和 Person 就是聚合。
class Person{
private IDCard card;
private Head head = new Head();
}
class IDCard{}
class Head{}
对应的类图: