UML類圖操作(二)
阿新 • • 發佈:2018-12-25
在上一篇中講了類圖的操作以及介紹,當然類不是單獨存在的,類與類之間存在著關係,UML提供了類之間的關係的表達方式。下面簡單介紹設定操作,雙擊關係線,然後找到Detail1.關聯關係(Association)
1.1.2雙向關聯
1.1.3自關聯
0..*:表示另一個類的一個物件與該類的零個或多個物件有關係1..*:表示另一個類的一個物件與該類的一個或多個物件有關係
0..1:表示另一個類的一個物件沒有或者只有一個物件有關係m..n:表示另一個類的一個物件與該類最少有m個最多有n個物件有關係
1.3組合關係組合關係:也是整體和部分的關係,但是組合關係中整體控制部分的生命週期,也就是說你在使用car物件的時候,在它的建構函式裡面建立wheel,在回收car的時候wheel同時被回收
依賴關係:依賴關係屬於一種使用關係 ,比如司機使用車,但是這個車會變化,可以開自行車,可以開轎車。。一般都是某個類使用另一個類裡面的物件作為引數使用
關聯關係:屬於結構關係,物件與物件之間的關係
1.1.1單向關聯class Man
{
public Car car;
}
class Car
{
}
1.1.2雙向關聯
class Studen
{
public Grade grade;
}
class Grade
{
public Student student;
}
1.1.3自關聯
1.1.4多重關聯:1..1 : 表示另一個類的一個物件只與該類的一個物件有關係class ClassA { public ClassA classA; }
0..*:表示另一個類的一個物件與該類的零個或多個物件有關係1..*:表示另一個類的一個物件與該類的一個或多個物件有關係
0..1:表示另一個類的一個物件沒有或者只有一個物件有關係m..n:表示另一個類的一個物件與該類最少有m個最多有n個物件有關係
這裡值得注意的是:有*的關聯性關係就有陣列
1.2聚合關係(Aggregation)聚合關係:表示整體與部分關係,部分是整體的一部分,也可以脫離整理獨立存在。也就是說car被回收,gasoline不會跟car一起被回收。這裡注意的是:通過建構函式注入;通過屬性注入;class Car { public Gasoline gasoline; //構造注入 public Car(Gasoline gasoline) { this.gasoline = gasoline; } //屬性注入 public Gasoline Gasoline { get { return gasoline; } set { gasoline = value; } } } class Gasoline { }
1.3組合關係組合關係:也是整體和部分的關係,但是組合關係中整體控制部分的生命週期,也就是說你在使用car物件的時候,在它的建構函式裡面建立wheel,在回收car的時候wheel同時被回收
class Car
{
public Wheel wheel;
public Car()
{
//例項化
wheel = new Wheel();
}
}
class Wheel
{
}
2.依賴關係(Dependency)依賴關係:依賴關係屬於一種使用關係
所以我們一般用到的3種方式
(1)將一個物件作為類的引數,比如通過建構函式傳參 public Car (A a){};(2)將一個物件作為引數傳入類的方法,比如 :public void A(Car car);
(3)在一個類裡面呼叫靜態物件的方法,比如 Car.Move();
下面我們使用第一種方式 class Driver
{
public Driver(Car car)
{
car.Move();
}
}
class Car
{
public void Move()
{ }
}
3.泛化關係(Generalization)泛化關係:俗稱繼承關係,子類繼承父類。public class Subclass : Base
{
}
public class Base
{
}
4.實現關係(Realization)實現關係:這個是屬於介面之間繼承的關係
class Subclass : IBase
{
public void Move()
{
}
}
interface IBase
{
void Move();
}