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

C#
C#和Java的区别
提高C#编程水平的50个要诀
GridView 删除/更新/取消
c#线程
C#泛型有什么好处
总体了解C#
C#2.0匿名函数
GridView中添加一个CheckBox列
C#2.0介绍之Iterators(迭代器)
.NET与Java间进行Web Service交互的选择
C# 2010命名和可选参数的新特性
利用C#远程存取Access数据库
C#中foreach基础使用方法
C#中用鼠标移动页面功能的实现
C# 4.0中泛型协变性和逆变性详解
C#:C# .Net中的类型相互转换教程
C#:C#中的基元类型
C#:语言中的重要知识详细介绍与解释
C#:浅谈C#中的集合对象(Collections)
C#:C#发起邮件会议

My FactoryMethod in C#


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 78 ::
收藏到网摘: 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){}

 }
};