亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

設計模式-工廠方法模式

發布時間:2020-06-16 06:49:03 來源:網絡 閱讀:315 作者:全嗲吉祥 欄目:編程語言
public interface IYunSuan
    {
        double getResult(int num1, int num2);        
    }
    public class jia : IYunSuan
    {
        public double getResult(int num1, int num2)
        {
            return num1 + num2;
        }
    }
    public class jian : IYunSuan
    {
        public double getResult(int num1, int num2)
        {
            return num1-num2;
        }
    }
    public class cheng : IYunSuan
    {
        public double getResult(int num1, int num2)
        {
            return num1*num2;
        }
    }
    public class chu : IYunSuan
    {
        public double getResult(int num1, int num2)
        {
            if (num2 == 0) return 0;
            return num1/num2;
        }
    }

    //////////////
     //簡單工廠,專門生產對象
        public static IYunSuan createYunSuanObj(string type)
        {
            switch (type)
            {
                case "+":return new jia();
                case "-": return new jian();
                case "*": return new cheng();
                case "/": return new chu();
            }
            return null;
        }
    //工廠方法模式,把簡單工廠分解
    public interface IFactory
    {
        IYunSuan createYunSuanObj();
    }
    public class jiaFactory : IFactory
    {
        public IYunSuan createYunSuanObj()
        {
            return new jia();
        }
    }
    public class jianFactory : IFactory
    {
        public IYunSuan createYunSuanObj()
        {
            return new jian();
        }
    }
    public class chengFactory : IFactory
    {
        public IYunSuan createYunSuanObj()
        {
            return new cheng();
        }
    }
    public class chuFactory : IFactory
    {
        public IYunSuan createYunSuanObj()
        {
            return new chu();
        }
    }

        前端:
        static void Main(string[] args)
        {
            //簡單工廠模式
            //var jia=simpleFactory.createYunSuanObj("+");
            //var result=jia.getResult(1,2);
            //Console.WriteLine(result);
            //Console.ReadLine();
                        //工廠方法模式
            IFactory factory = new jiaFactory();
            var jia=factory.createYunSuanObj();
            var result=jia.getResult(1, 2);
            Console.WriteLine(result);
            Console.ReadLine();
        }

總結:定義一個創建對象的接口,讓子類決定實例化哪個類,工廠模式使得一個類的實例化延遲到其子類。是基于簡單工廠的擴展模式,解耦了簡單工廠的工廠類,符合了幾大原則
優點:解耦
缺點:代碼量增加N多,讓人蛋疼。

設計模式-工廠方法模式

設計模式-工廠方法模式

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

商都县| 湛江市| 肃北| 从江县| 安丘市| 星子县| 静宁县| 舒兰市| 石台县| 涡阳县| 阳泉市| 营口市| 新竹市| 县级市| 金乡县| 铁力市| 石嘴山市| 英山县| 玉屏| 崇仁县| 夏河县| 九台市| 长沙市| 怀仁县| 彭泽县| 蕲春县| 兴宁市| 临泽县| 长顺县| 澎湖县| 印江| 宽甸| 高陵县| 勐海县| 象州县| 江陵县| 河南省| 沭阳县| 苏尼特左旗| 上饶市| 民丰县|