My AbstractFactory in C#

//MyAbstractFactory
using System;

///Basic Products
//AbstractProducts
abstract class FontsStyle
{
 public string stylestring;
};

abstract class TablesStyle
{
 public string stylestring;
};
//RealProducts
class FontsStyleA:FontsStyle
{
 public FontsStyleA(){stylestring="FontsStyleA";}
};
class FontsStyleB:FontsStyle
{
 public FontsStyleB(){stylestring="FontsStyleB";}
};

class TablesStyleA:TablesStyle
{
 public TablesStyleA(){stylestring="TablesStyleA";}
};
class TablesStyleB:TablesStyle
{
 public TablesStyleB(){stylestring="TablesStyleB";}
};

//Basic Products

//Style Factorys

abstract class StyleFactory
{
 abstract public FontsStyle createFontsStyle();
 abstract public TablesStyle createTablesStyle();
};

class StyleA:StyleFactory
{
 override public FontsStyle createFontsStyle()
 {
  return new FontsStyleA();
 }
    override public TablesStyle createTablesStyle()
 {
  return new TablesStyleA();
 }
};

class StyleB:StyleFactory
{
 override public FontsStyle createFontsStyle()
 {
  return new FontsStyleB();
 }
    override public TablesStyle createTablesStyle()
 {
  return new TablesStyleB();
 }
};
//Style Factorys

//HomePage is the product as last
class HomePage
{
 private FontsStyle fontsstyle;
 private TablesStyle tablesstyle;

 private string htmlcode="<html><body><table style='tablesstyle'><tr><td><font style='fontsstyle'>HelloWorld!</font></td></tr></table></body></html>";

    public HomePage(StyleFactory stylefactory)
 {
       fontsstyle=stylefactory.createFontsStyle();
       tablesstyle=stylefactory.createTablesStyle();
    htmlcode=htmlcode.Replace("fontsstyle",fontsstyle.stylestring);
    htmlcode=htmlcode.Replace("tablesstyle",tablesstyle.stylestring);
    }

 public void PrintHTMLCode()
 {
  Console.WriteLine(htmlcode);
 }
 public void SetStyle(string filename)
 {
 }

};

//MyAbstractFactory App
class TestApp
{
 public static void Main( string[] args )
 {
  StyleFactory stylea=new StyleA();
  HomePage samplepage=new HomePage(stylea);
  samplepage.PrintHTMLCode();

  StyleFactory styleb=new StyleB();
  samplepage=new HomePage(styleb);
  samplepage.PrintHTMLCode();
  
  while(true){}
 }
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值