K書記錄-大話設計模式

以前上過設計模式的課程,後來複習的時候做了不少範例,但是後來實戰上缺都只用到幾種樣式而已,想說再把設計模式再加強一點,開始讀了一本簡體書"大話設計模式",是使用C#來撰寫的,然後想起了這個部落格,就也順便紀錄一下。
(其實已經花時間把書都看完且範例都做出來了,但是還是做個總整理,順便讓腦袋內的設計模式重構一下)

此書是用故事模式引導閱讀者進入狀況,然後再將故事內容導出設計模式,將現實與程式連結在一起後更好理解設計模式的箇中滋味。

在正式開始介紹設計模式之前先將一些基本知識寫在這篇,之後將會一篇文章介紹一個設計模式。

統一塑模語言(Unified Modeling Language)

1.類別圖(Class Diagram)

類別名稱 : 加法

屬性1 : 數值1

屬性2 : 數值2

方法1 : 加法(建構式)

方法2 : 計算結果

有一個類別名稱叫"加法",它擁有兩個私有屬性分別是數值1和數值2,它有兩種方法,一個是建構式填入數值1、2,另一個是取得計算結果。

程式範例 : 

    public class Addition
    {
        private double num1;
        private double num2;
        public Addition(double num1, double num2)
        {
            this.num1 = num1;
            this.num2 = num2;
        }
        public double GetResult()
        {
            return num1 + num2;
        }
    }

2.繼承(inherit)

爸爸有痛風,兒子繼承了爸爸的基因,兒子也會痛風發作

程式範例 : 

    public class Father
    {
        public void Gout()
        {
            MessageBox.Show($"{this.GetType().Name} 痛風發作了!");
        }
    }
    public class Son : Father
    {

    }

3.組合(Composition)

 

課程一定會有老師上課

程式範例 : 

    public class Course
    {
        private Teacher teacher;
        public Course()
        {
            teacher = new Teacher();
        }
    }
    public class Teacher
    {
    }

4.聚合(Aggregation)

 

課程可以有0個學生到多個學生

ex1:昨天的課程有40個學生上課

ex2:今天的課程沒有學生到課

程式範例 : 

    public class Course
    {
        private List<Student> students;
    }
    public class Student
    {

    }

5.依賴(Dependency)

動物必須要有水才能活著(動物類別沒有水類別就無法建立)

程式範例 : 

    public class Animal
    {
        public Animal(Water water)
        {

        }
    }
    public class Water
    {

    }

 

這篇就先介紹到這,寫文章真D累。

 

新手上路,若有錯誤請不吝嗇指教,謝謝。