1. 程式人生 > >UML類圖操作(二)

UML類圖操作(二)

在上一篇中講了類圖的操作以及介紹,當然類不是單獨存在的,類與類之間存在著關係,UML提供了類之間的關係的表達方式。下面簡單介紹設定操作,雙擊關係線,然後找到Detail1.關聯關係(Association)

關聯關係:屬於結構關係,物件與物件之間的關係

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自關聯
class ClassA
{
    public ClassA classA;
}
1.1.4多重關聯:1..1 : 表示另一個類的一個物件只與該類的一個物件有關係
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();

    }