国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

Abstract Factory pattern -- Structural example

2024-07-21 02:27:42
字體:
來源:轉載
供稿:網友

uml class diagram







using system;

// "abstractfactory"

abstract class abstractfactory
{
  // methods
  abstract public abstractproducta createproducta();
  abstract public abstractproductb createproductb();
}

// "concretefactory1"

class concretefactory1 : abstractfactory
{
  // methods
  override public abstractproducta createproducta()
  {
    return new producta1();
  }
  override public abstractproductb createproductb()
  {
    return new productb1();
  }
}

// "concretefactory2"

class concretefactory2 : abstractfactory
{
  // methods
  override public abstractproducta createproducta()
  {
    return new producta2();
  }
  override public abstractproductb createproductb()
  {
    return new productb2();
  }
}

// "abstractproducta"

abstract class abstractproducta
{
}

// "abstractproductb"

abstract class abstractproductb
{
  // methods
  abstract public void interact( abstractproducta a );
}

// "producta1"


class producta1 : abstractproducta
{
}

// "productb1"

class productb1 : abstractproductb
{
  // methods
  override 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();

    console.read();
  }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 万山特区| 慈利县| 嘉定区| 油尖旺区| 确山县| 应用必备| 乌海市| 天祝| 论坛| 宁城县| 潼关县| 尼勒克县| 白山市| 阳泉市| 菏泽市| 永州市| 阳谷县| 铁力市| 凉城县| 习水县| 连平县| 古浪县| 丰都县| 五台县| 潜山县| 新宾| 灵丘县| 高雄县| 鸡东县| 台安县| 小金县| 上饶县| 华池县| 尤溪县| 荆门市| 呼图壁县| 铜鼓县| 剑阁县| 聊城市| 潮州市| 紫阳县|