亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

抽象工廠(Abstract Factory Pattern)模式

系統 1625 0

一, 結構

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

抽象工廠(Abstract Factory)角色: 擔任這個角色的是工廠方法模式的核心,它是與應用系統商業邏輯無關的。

具體工廠(Concrete Factory)角色: 這個角色直接在客戶端的調用下創建產品的實例。這個角色含有選擇合適的產品對象的邏輯,而這個邏輯是與應用系統的商業邏輯緊密相關的。

抽象產品(Abstract Product)角色: 擔任這個角色的類是工廠方法模式所創建的對象的父類,或它們共同擁有的接口。

具體產品(Concrete Product)角色: 抽象工廠模式所創建的任何產品對象都是某一個具體產品類的實例。這是客戶端最終需要的東西,其內部一定充滿了應用系統的商業邏輯。

?

二,示例代碼

    public interface AbstractFactory {
	public AbstractProductA CreateProductA();
  public AbstractProductB CreateProductB();
}

public class ConcreteFactory1 implements AbstractFactory {
  public AbstractProductA CreateProductA() {
    return new ProductA1();
  }
  public AbstractProductB CreateProductB() {
    return new ProductB1();
  }
}

public class ConcreteFactory2 implements AbstractFactory {
  public AbstractProductA CreateProductA() {
    return new ProductA2();
  }
  public AbstractProductB CreateProductB() {
    return new ProductB2();
  }
}

public interface AbstractProductA {
}

public interface AbstractProductB {
}

public class ProductA1 implements AbstractProductA {
}

public class ProductB1 implements AbstractProductB
{
  public void Interact( AbstractProductA a ) {
    Console.WriteLine( this + " interacts with " + a );
  }
}

// "ProductA2"
class ProductA2 : AbstractProductA
{
}

// "ProductB2"
class ProductB2 : AbstractProductB
{
  // Methods
  override public void Interact( AbstractProductA a )
  {
    Console.WriteLine( this + " interacts with " + a );
  }
}

// "Client" - the interaction environment of the products
class Environment
{
  // Fields
  private AbstractProductA AbstractProductA;
  private AbstractProductB AbstractProductB;

  // Constructors
  public Environment( AbstractFactory factory )
  {
    AbstractProductB = factory.CreateProductB();
    AbstractProductA = factory.CreateProductA();
  }
 
  // Methods
  public void Run()
  {
    AbstractProductB.Interact( AbstractProductA );
  }
}

/**//// <summary>
/// ClientApp test environment
/// </summary>
class ClientApp
{
  public static void Main(string[] args)
  {
    AbstractFactory factory1 = new ConcreteFactory1();
    Environment e1 = new Environment( factory1 );
    e1.Run();

    AbstractFactory factory2 = new ConcreteFactory2();
    Environment e2 = new Environment( factory2 );
    e2.Run();
  }
}
  

?

?

抽象工廠(Abstract Factory Pattern)模式


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 在线成人免费视频 | 国产中文在线观看 | 日日摸夜夜摸狠狠摸日日碰夜夜做 | 他也色在线 | 亚洲成在人天堂一区二区 | 欧美日韩成人在线 | 操一操影院 | 伊人色视频 | 香焦视频在线观看黄 | 天天操天天射天天舔 | 91久久国产| 久草国产在线 | 亚洲成在人网站天堂一区二区 | 国产福利一区二区在线观看 | 免费国产阿v视频在线观看 免费国产不卡午夜福在线 免费国产不卡午夜福在线观看 | 四虎 2022 永久网站 | 日韩在线一区二区 | 性视频一区 | 亚洲综合在线播放 | 久久综久久美利坚合众国 | 天天色天天干天天 | 精品国产你懂的在线观看 | 在线亚洲欧洲国产综合444 | 久久婷婷一区二区三区 | 精品成人免费一区二区在线播放 | 精品一区二区三区 不卡高清 | 精品视频在线观看一区二区三区 | 久久精品成人免费网站 | 国产毛片毛片精品天天看 | 成人国产在线视频 | 蜜桃久久久久久久久久久 | 麻豆一区二区三区在线观看 | 奇米影视亚洲春色77777 | 中文字幕一区二区三区永久 | 中文字幕色综合久久 | 亚洲精品国产福利片 | 欧美一区二区三区精品影视 | 国产精品u任我爽爆在线播放 | 色偷偷亚洲 | 婷婷视频在线观看 | 国内精品自在自线在免费 |