中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

設計模式-工廠方法模式

發布時間: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

蒙阴县| 密云县| 科技| 澄城县| 珠海市| 宁都县| 江山市| 工布江达县| 临朐县| 龙泉市| 达州市| 辉县市| 客服| 浮梁县| 通城县| 文昌市| 关岭| 鲜城| 长岭县| 乌拉特后旗| 博罗县| 红河县| 雅安市| 耒阳市| 鸡西市| 涟水县| 阿城市| 新晃| 德庆县| 平阳县| 平乡县| 岑巩县| 蒙山县| 昌图县| 乃东县| 孟州市| 镇雄县| 婺源县| 井陉县| 淮阳县| 天祝|