1.最近在學習設計模式,學習最簡單的簡單工廠設計模式。設計模式
1.1 工廠模式用到了單一職責原則和開閉原則ide
1.2 單一原則:一個類只負責一個功能領域中的相應職責,或者能夠定義爲:就一個類而言,應該只有一個引發它變化的緣由。學習
1.3 開閉原則:一個軟件實體應當對擴展開放,對修改關閉。即軟件實體應儘可能在不修改原有代碼的狀況下進行擴展。(注:抽象化是開閉原則的關鍵)spa
2.工廠模式核心就是抽象設計
其餘的不說了,直接上代碼code
3.先建一個抽象類和一個抽象方法對象
public abstract class AbstractChart { //virtual 虛方法必須實現方法體 public abstract void Display(); }
4.建一個餅狀圖的類,繼承抽象類,用override重寫抽象類裏面的方法,實現多態blog
public class PieChart:AbstractChart { public override void Display() { Console.WriteLine("這是一個餅狀圖!"); } }
5.建一個柱狀圖的類,繼承抽象類,用override重寫抽象類裏面的方法,實現多態繼承
public class BarChart:AbstractChart { //子類繼承抽象類用override重寫抽象類的方法(父類方法必須是抽象方法或者虛方法) public override void Display() { Console.WriteLine("這是一個柱狀圖!"); } }
6.建立一個工廠類,根據條件建立出對應的對象,調用方法string
public class SimpleFactory { AbstractChart chart; public AbstractChart CreateFactory(string oper) { switch (oper) { case "bar": chart = new BarChart(); break; case "pie": chart = new PieChart(); break; } return chart; } }
7.根據工廠建立出對象,根據傳遞的信息,獲得相對應的值
static void Main(string[] args) { //工廠模式用到了單一職責原則和開閉原則 //單一原則:一個類只負責一個功能領域中的相應職責,或者能夠定義爲:就一個類而言,應該只有一個引發它變化的緣由。 //開閉原則:一個軟件實體應當對擴展開放,對修改關閉。即軟件實體應儘可能在不修改原有代碼的狀況下進行擴展。(注:抽象化是開閉原則的關鍵) SimpleFactory simpleFactory = new SimpleFactory(); AbstractChart chart = simpleFactory.CreateFactory("bar"); chart.Display(); }