亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

c#簡單工廠、工廠方法與抽象工廠的區別分析

2020-01-24 03:31:01
字體:
來源:轉載
供稿:網友

  有一個比較好理解的例子,在這跟大家介紹下:
  1.如果一個后花園只種蔬菜類,那么就用簡單工廠就可以了.
  2.如果后花園蔬菜品種繁多.得用工廠方法才可以,把共有的東西抽象出來.
  3.如果要擴大后花園的規模,比如一個在北方,一個在南方,這樣工廠方法就無法實現了,就應當用抽象工廠,把各種各樣的植物,又組成一個后花園.
所以我個人認為,簡單工廠是一個工廠只生產一類的產品,面對的是具體的類,工廠方法是可以生產不同的產品,把公共的方法抽象出來,然后進行創建各種各樣的產品.抽象工廠把幾種產品劃出共同的東西,把相互依賴的對象抽象出來,只要實現這些接口就可以得到不同的產品.
具體例子:
 1.簡單工廠:

復制代碼 代碼如下:

using System;
public interface ICar
{
    void run();
}

public class BMWCar : ICar
{
    public void run()
    {
        Console.WriteLine("BMWCar run");
    }
}

public class BenzCar : ICar
{
    public void run()
    {
        Console.WriteLine("BenzCar run");
    }
}

public class Driver
{
    public static ICar DriverCar(string carType)
    {
        switch (carType)
        {
            case "BMWCar": return new BMWCar();
            case "BenzCar": return new BenzCar();
            default: throw new Exception();
       }
    }
}

public class Client
{
    public static void Main()
    {
        ICar myCar = Driver.DriverCar("BenzCar");
        myCar.run();
        Console.Read();
    }
}


心得:優點是只要實現共有的接口就可以實現不同車跑的方式.但缺點就是要判斷哪一種車,造成要修改Driver 類
2.工廠方法:
復制代碼 代碼如下:

using System;
public interface ICar
{
    void run();
}

public class BMWCar : ICar
{
    public void run()
    {
        Console.WriteLine("BMWCar run");
    }
}

public class BenzCar : ICar
{
    public void run()
    {
        Console.WriteLine("BenzCar run");
    }
}
public abstract class Driver
{
    public abstract ICar DriverCar();
}

public class BMWDriver : Driver
{
    public override ICar  DriverCar()
    {
        return new BMWCar();
    }

}
public class BenzDriver : Driver
{
    public  override ICar DriverCar()
    {
        return new BenzCar();
    }
}

class Client
{
    public static void Main()
    {
        Driver myDriver = new BenzDriver();
        ICar myCar = myDriver.DriverCar();
        myCar.run();
        Console.Read();
    }
}


心得:優點是符合了開放-封閉原則(OCP),從整體上還看不出什么缺點.

3.抽象工廠:

復制代碼 代碼如下:

using System;

public interface IBusinessCar
{
    void run();
}

public interface ISportCar
{
void run();
}

public class BMWBusinessCar : IBusinessCar
{
    public void run()
    {
        Console.WriteLine("BMWCar run");
    }


}

public class BenzBusinessCar : IBusinessCar
{
    public void run()
    {
        Console.WriteLine("BenzBusinessCar run");
    }
}

public class BMWSportCar:ISportCar
{
public void run()
{
Console.WriteLine("BMWSportCar run");
}
}

public class BenzSportCar:ISportCar
{
public void run()
{


Console.WriteLine("BenzSportCar run");
}
}

public interface IDriver
{
IBusinessCar BusinessCarDriver();
ISportCar SportCarDriver();
}

public class BMWDriver:IDriver
{
public IBusinessCar BusinessCarDriver()
{
return new BMWBusinessCar();
}
public ISportCar SportCarDriver()
{
return new BMWSportCar();
}
}

public class BenzDriver:IDriver
{
public IBusinessCar BusinessCarDriver()
{
return new BenzBusinessCar();
}

public ISportCar SportCarDriver()
{
return new BenzSportCar();
}
}

class Client
{
    public static void Main()
    {
        IDriver myDriver =new BenzDriver();
        ISportCar myCar = myDriver.SportCarDriver();
        myCar.run();
        Console.Read();
    }

}


心得:抽象方法似乎達到了完美境界.把開奔馳的司機和開寶馬的司機的公共方法抽象出來,并對不同的司機創建不同的類,到時候不管是開什么車的司機隨你添加.它們唯一的共同點都是開車.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
九九热在线精品视频| 夜夜嗨av一区二区三区免费区| 亚洲第一二三四五区| 成人h片在线播放免费网站| 亚洲国产成人一区| 欧美极品在线视频| 国产精品美女久久| 亚洲欧美日韩在线高清直播| 欧美激情一级欧美精品| 成人深夜直播免费观看| 美女999久久久精品视频| 国产成人高清激情视频在线观看| 国内精品久久久久久| 国产欧美一区二区三区久久人妖| 91精品国产777在线观看| 亚洲成人精品在线| 8090理伦午夜在线电影| 欧美精品18videosex性欧美| 国产精品永久免费| 欧美电影在线观看高清| 国内免费久久久久久久久久久| 国产亚洲欧美日韩一区二区| 亚洲乱码国产乱码精品精天堂| 欧美一区二区三区艳史| 欧美午夜片欧美片在线观看| 欧美国产日本高清在线| 国模精品视频一区二区三区| 欧美大尺度电影在线观看| 国产精品一区二区三| 久久人人爽人人爽爽久久| 2021国产精品视频| 在线亚洲午夜片av大片| 国产精品免费一区二区三区都可以| 最近2019好看的中文字幕免费| 亚洲午夜未满十八勿入免费观看全集| 4444欧美成人kkkk| 日韩在线视频免费观看| 亚洲理论电影网| 成人网址在线观看| 欧美成人精品一区二区三区| 亚洲美女喷白浆| 91精品久久久久久久久久久久久久| 8090理伦午夜在线电影| 国产91在线播放九色快色| 欧美激情网友自拍| 高清亚洲成在人网站天堂| 久久久国产精品免费| 国产精品自拍小视频| yellow中文字幕久久| 欧美专区中文字幕| 欧美激情一区二区久久久| 欧美精品videos性欧美| 亚洲人成在线一二| 一区二区三区精品99久久| 中文字幕免费精品一区高清| 久久99热这里只有精品国产| 97在线视频国产| 欧美日韩午夜剧场| 日韩亚洲精品电影| 91国偷自产一区二区三区的观看方式| 欧美黑人视频一区| 日韩精品中文字幕在线播放| 日韩成人中文电影| 精品久久久久久久久国产字幕| 久久久日本电影| 激情成人中文字幕| 亚洲第一二三四五区| 欧美在线视频观看免费网站| 国产精品大陆在线观看| 欧美日韩国产二区| 欧美综合在线观看| 日韩欧美在线网址| 亚洲男人7777| 国产精品一二三在线| 热久久视久久精品18亚洲精品| 欧美裸体xxxx极品少妇软件| 国产精品一区二区电影| 国产www精品| 蜜臀久久99精品久久久无需会员| 亚洲精品美女免费| 欧美日韩国产色视频| 色婷婷综合成人av| 久久香蕉国产线看观看av| 欧美精品激情blacked18| 国产亚洲欧洲高清一区| 欧美成人激情在线| 国产精品a久久久久久| 中文字幕亚洲综合| 欧美性猛交xxxx乱大交3| 久久99热这里只有精品国产| 国产精品免费久久久久久| 国产精品欧美激情在线播放| 精品电影在线观看| 97人人模人人爽人人喊中文字| 国产免费一区视频观看免费| 在线观看欧美视频| 欧美色另类天堂2015| 免费99精品国产自在在线| 亲爱的老师9免费观看全集电视剧| 色噜噜国产精品视频一区二区| 久久精品久久精品亚洲人| 精品香蕉在线观看视频一| 欧美性猛交丰臀xxxxx网站| 九九精品视频在线| 日韩黄色av网站| 最近免费中文字幕视频2019| 成人久久一区二区三区| 国产区精品在线观看| 色偷偷9999www| 国产精品亚洲精品| 国产精品一区二区久久| 欧美伊久线香蕉线新在线| 国产精品福利小视频| 91久久精品国产91久久| 国产精品欧美在线| 国产精品久久在线观看| 欧美激情一区二区三区久久久| 91精品国产91久久久久久| 亚洲欧美一区二区三区四区| 91国产美女在线观看| 欧美成人在线免费视频| 国产精品一区二区三区久久| 亚洲视频网站在线观看| 欧美日韩精品在线播放| 久久久噜噜噜久噜久久| 国产精品视频26uuu| 国产精品视频一区二区高潮| 91豆花精品一区| 国产男女猛烈无遮挡91| 国产精品成人久久久久| 亚洲成av人乱码色午夜| 日韩精品视频免费在线观看| 亚洲欧洲国产精品| 欧美精品18videosex性欧美| 国产精品免费视频久久久| 欧美亚洲视频一区二区| 色www亚洲国产张柏芝| 日韩在线欧美在线| 在线成人免费网站| 米奇精品一区二区三区在线观看| 欧美日韩中国免费专区在线看| 欧美资源在线观看| 91精品中国老女人| 国模精品一区二区三区色天香| 久久久久久国产| 精品久久久av| 日本精品一区二区三区在线播放视频| 日韩视频欧美视频| 精品国产老师黑色丝袜高跟鞋| 亚洲欧洲成视频免费观看| 国产欧美日韩中文字幕在线| 高清一区二区三区四区五区| 美女福利精品视频| 中文字幕av一区中文字幕天堂| 欧美人与性动交| 国产精品永久免费在线| 中文字幕av一区二区三区谷原希美| 国产有码在线一区二区视频| 69久久夜色精品国产7777| 亚洲欧洲第一视频| 成人亚洲综合色就1024| 亚洲韩国欧洲国产日产av| 欧洲中文字幕国产精品| 亚洲成人久久久|