依賴、泛化、實現、關聯、聚合、組合
阿新 • • 發佈:2020-07-18
類之間的關係有:依賴、泛化、實現、關聯、聚合、組合。
類圖的六大關係
依賴
依賴關係是指類中用到了對方。可以是“類的成員屬性”、“方法的返回型別”、“方法接收的引數型別”和“方法中使用到的類”。
對應的類圖:
public class PersonServiceBean { private PersonDao personDao; public void save(Person person) { } public IDCard getIDCare(Integer personid) { return null; } public void modefy() { Department department = new Department(); } }
public class Department {
}
public class IDCard {
}
public class Person {
}
public class PersonDao {
}
泛化
泛化關係實際上就是繼承關係,是依賴關係的特例。
對應的類圖:
public abstract class DaoSupport {
public void save(Object entity) {
}
public void delete(Object id) {
}
}
public class PersonServiceBean extends DaoSupport { }
實現
實現關係實際上就是A類實現B類的介面,是依賴關係的特例。
類圖如下:
public interface PersonService {
public void delete(Integer id);
}
public class PersonServiceBean implements PersonService { @Override public void delete(Integer id) { // TODO Auto-generated method stub System.out.println("delete.."); } }
關聯
關聯關係實際上就是類與類之間的關係,是依賴關係的特例。
關聯具有導航性:即雙向關係或單向關係。
關聯具有多重性:如“1”(表示有且僅有一個),“0...”(表示0個或多個),“0,1”(表示0個或1個),“n...m”(表示n到m個都可以)。
單向一對一關係:
public class Person {
private IDCard card;
}
public class IDCard {
}
雙向一對一關係:
public class Person {
private IDCard card;
}
public class IDCard {
private Person person;
}
聚合
聚合關係表示的是整體和部分的關係,整體與部分可以分開。聚合關係是關聯關係的特例,具有關聯的導航性與多重性。
如:一臺電腦由鍵盤、顯示器、滑鼠等組成,組成電腦的各個配件是可以從電腦上分離出的,使用帶空心菱形的實線來表示。
public class Computer {
private Mouse mouse; //滑鼠可以和Computer分離
private Moniter moniter;//顯示器可以和Computer分離
public void setMouse(Mouse mouse) {
this.mouse = mouse;
}
public void setMoniter(Moniter moniter) {
this.moniter = moniter;
}
}
組合
組合關係,也是整體與部分的關係,但是整體與部分不可以分開。
在程式中我們定義實體:Person與IDCard、Head,那麼Head和Person就是組合,IDCard和Person就是聚合。
但是如果在程式中Person實體定義了對IDCard進行級聯刪除,即刪除Person時連同IDCard一起刪除,那麼IDCard和Person就是組合了。
public class Person {
private IDCard card; //聚合關係
private Head head = new Head(); //組合關係
}
public class IDCard {
}
public class Head {
}
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;
}
}