//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){} } }; 中国.Net俱乐部转载此文。让我们一起进步,共享人类技术资源。[www.chinaaspx.com]
|