2015年12月26日 星期六

UML (Unified Modeling Language, 統一建模語言)

UML 的作用是可以讓程式設計師在實作系統前,先規劃出整個系統的架構,像是物件與物件之間的關係,物件本身的設計等如此可以清楚了解系統內的類別之間的關係降低程式修改的次數
以下是UML使用的表示圖形
類別圖

類別圖分為3層:
第一層為類別名稱,如果類別為抽象,則名稱以斜體表示。
第二層為類別的屬性,int為屬性的型別,attribute前面的符號,"-"表示該attribute的存取屬性為private,另外還有"+"表示public"#"表示protected
第三層為類別的方法或功能,void表示該方法或功能不回傳值
範例如下:
類別圖範例

介面圖分為三層,三層的表示跟類別圖相同。
Interface Iblossoms
{
    bool IsAlive;
    void Blossoms();
}
介面圖


花抽象類別繼承植物抽象類別,繼承關係以空心三角形+實線表示。
abstract class Flower:Plant
{
}
繼承表示圖

文心蘭類別,實現花開介面,實現介面以空心三角形+虛線來表示。
class Oncidium:Iblossoms 
{
    IsAlive = true;
    void blossoms()
    {
    }
}
實現介面表示圖

當一個類別知道另一個類別的時候,用關聯關係。
class Oncidium
{
    private Climate climate;
}
關聯關係表示圖

聚合關係是一種弱的擁有關係,說明A物件可以包含B物件,但B物件不是A物件的一部分。
class ClusterofFlowers
{
    private Oncidiums[] oncidiums;
}
聚合關係表示圖

合成關係是一種強的擁有關係,說明了部分和整體的關係,部分和整體的生命週期一樣。
class Flower
{
    private Sepal sepal;
    public Flower()
    {
        Sepal = new Sepal();
    }
}
合成(組合)關係表示圖

依賴關係以此例表示植物需要水和陽光,也就是植物需要依賴水和陽光。
abstract class Plant
{
    public NatureElement(SunLight sunlight, Water water)
    {
    }
}
依賴關係表示圖
參考書籍: 大話設計

沒有留言: