C#簡單工廠模式

C#簡單工廠模式編程

模型,創建一個模型,構建咱們的實際工程,項目。框架

全部面向對象的編程都是在咱們生活中存在的,從詞義的解釋就是咱們生活中的工廠就是負責生產產品的,而到開發中對應的就是NEW不一樣的對象,該模式主要解決的問題就是解決建立對象與該類的解耦。設計原則中常常說的類單一職責、封裝性都有體現。

學習框架的目的:爲了適應業務的複雜度提升,給業務進行解耦操做。面向對象目標:高內聚、低耦合、可重用。ide

編程中的簡單工廠就是一個生產對象的類,它的主要做用是建立具體的產品類實例。咱們以一個生產鼠標爲例來分析簡單工廠的做用,鼠標有兩種:戴爾鼠標和惠普鼠標。學習

視頻課:https://edu.csdn.net/course/detail/30808測試

一.使用步驟.net

簡單工廠模式須要有三個組成角色:設計

一、抽象產品角色:表明了具體產品的一個抽象類或是接口。code

二、具體產品角色:最後生成的實例對象便是它。第一步何第二步的關係,第二步是第一步的實現類或子類。視頻

三、工廠類角色:負責生成具體產品類。對象

二.場景

參考代碼

2.1 抽象接口定義

//1.抽象接口定義或抽象類定義;
    interface IDrive
    {
       void drive();
    }

2.2具體的三個類定義

class Benz:IDrive
    {
        public void drive() {
            Console.WriteLine("奔馳開始啓動了...");
        }
    }

class BYD : IDrive
    {
        public void run()
        {
            Console.WriteLine("比亞迪新能源車在跑..,不限號...");
        }
    }

class BMW:IDrive
    {
        public void drive() {
            Console.WriteLine("寶馬開始啓動了...");
        }
    }

三.工廠類定義

class CarFactory
    {
        public static IDrive createCar(string name) {
            IDrive car=null;
            switch (name)
            {
                case "奔馳":
                    car = new Benz(); break;
                case "寶馬":
                    car = new BMW(); break;
                case "比亞迪":
                    car = new BYD(); break;                
            }
            return car;
        }
    }
}

四.測試類定義

使用界面來測試:

代碼:

//Benz bz = new Benz();
            //bz.run();
            //Bmw bmw = new Bmw();
            //bmw.run();
            //BYD byd = new BYD();
            //byd.run();
            //這時候,有了接口、也有了接口的實現類;
            string name=textBox1.Text;
            //IDrive car = null; //整一個車的對象,默認爲

            //如今有了小車司機,以後,老闆就不用再關注限號不限號,
            IDrive car = CarFactory.createCar(name);

            car.run();

測試輸出,在視圖--》輸出,裏面把輸出窗口給調出來。

三.優勢和缺點

3.1 優勢

  • 工廠類含有必要的判斷邏輯,能夠決定在何時建立哪個產品類的實例,客戶端能夠免除直接建立產品對象的責任,而僅僅「消費」產品;簡單工廠模式經過這種作法實現了對責任的分割,它提供了專門的工廠類用於建立對象。
  • 客戶端無須知道所建立的具體產品類的類名,只須要知道具體產品類所對應的參數便可,對於一些複雜的類名,經過簡單工廠模式能夠減小使用者的記憶量。
  • 經過引入配置文件,能夠在不修改任何客戶端代碼的狀況下更換和增長新的具體產品類,在必定程度上提升了系統的靈活性。

3.2 缺點

  • 因爲工廠類集中了全部產品建立邏輯,一旦不能正常工做,整個系統都要受到影響。
  • 使用簡單工廠模式將會增長系統中類的個數,在必定程序上增長了系統的複雜度和理解難度。
  • 系統擴展困難,一旦添加新產品就不得不修改工廠邏輯,一樣破壞了「開閉原則」;在產品類型較多時,有可能形成工廠邏輯過於複雜,不利於系統的擴展和維護。
  • 簡單工廠模式因爲使用了靜態工廠方法,形成工廠角色沒法造成基於繼承的等級結構。

4 適用環境

在如下狀況下可使用簡單工廠模式:

  • 工廠類負責建立的對象比較少:因爲建立的對象較少,不會形成工廠方法中的業務邏輯太過複雜。
  • 客戶端只知道傳入工廠類的參數,對於如何建立對象不關心:客戶端既不須要關心建立細節,甚至連類名都不須要記住,只須要知道類型所對應的參數。
相關文章
相關標籤/搜索