当前位置: 首页 > 图文教程 > .Net技术 > C# > My FactoryMethod in C#

C#
C#.Net网络程序开发-Socket篇
My Singleton in C#
My Prototype in C#
My FactoryMethod in C#
C# 编码规范和编程好习惯
C#数据库操作的三种经典用法
C#实现24点算法源代码
C#中使用GDI 让网站新闻标题个性化
Java util.concurrent中LockSupport类在C#中的实现
如何使用C#进行Visio二次开发
论C#变得越来越臃肿是不可避免的
C-Sharp开发应避免的几个小滥用
C#实现类似qq的屏幕截图程序
C#关闭电脑
用C#画树
C#从视频截图的方法
把new、virtual、override说透
关于enum应用的总结
C#修饰符总结
c#定位CUP所有问题

My FactoryMethod in C#


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 77 ::
收藏到网摘: n/a

//MyFactoryMethod
using System;
using System.Collections;
//SinglePage class,which build the at last product,part element
//----top class
abstract class SinglePage
{
};
//----element1
class RegisterPage:SinglePage
{
};
//----element2
class LoginPage:SinglePage
{
};
//----element3
class IndexPage:SinglePage
{
};
//----element4
class TitlePage:SinglePage
{
};
//----element5
class ContentPage:SinglePage
{
};
//----element6
class PostPage:SinglePage
{
};
//----element7
class ReplyPage:SinglePage
{
};
//----------------------------------------------end of Page class
//HomePage class,FactoryMethod is in this class,creater
//----top class
abstract class HomePage
{
 //Fields,the aim page data
 protected ArrayList pages=new ArrayList();
   
 //Properties
 public ArrayList Pages
 {
  get{return pages;}
 }
 //Methods
 public HomePage()
 {
  this.CreateHomePage();
 }

 abstract public void CreateHomePage();
};
//----concreteclass1
class Forum:HomePage
{
 override public void CreateHomePage()
 {
  Pages.Add(new RegisterPage());
  Pages.Add(new LoginPage());
  Pages.Add(new IndexPage());
  Pages.Add(new TitlePage());
  Pages.Add(new ContentPage());
  Pages.Add(new PostPage());
  Pages.Add(new ReplyPage());
  
 }
};
//----concreteclass2
class GuestBook:HomePage
{
 override public void CreateHomePage()
 {
  Pages.Add(new RegisterPage());
  Pages.Add(new LoginPage());
  Pages.Add(new ContentPage());
  Pages.Add(new ReplyPage());
 }
};
//----------------------------------------------end of HomePage class
//Test
class TestApp
{
 public static void Main(string[] args)
 {
  HomePage aforum=new Forum();
  HomePage aguestbook=new GuestBook();

        foreach(SinglePage singlepage in aforum.Pages)
  {
   Console.WriteLine("In a forum homepage contians {0}",singlepage);
  }

        foreach(SinglePage singlepage in aguestbook.Pages)
  {
   Console.WriteLine("In a guestbook homepage contians {0}",singlepage);
  }

        while(true){}

 }
};