My Prototype in C#

//MyPrototype
using System;
using System.Collections;
//abstract PageStylePrototype Class 'Prototype
abstract class PageStylePrototype
{  
 //Fields
 protected string stylestring;
 //Properties
 public string StyleString
 {
   get{return stylestring;}
   set{stylestring=value;}
 }
 //Methods
 abstract public PageStylePrototype Clone();
};
//---PageStyle Class---
class PageStyle:PageStylePrototype
{
 //Constructor
 public PageStyle(String stylestr)
 {
  StyleString=stylestr;
 }
 override public PageStylePrototype Clone()
 {
  return (PageStylePrototype)this.MemberwiseClone();
 }

 public void DisplayStyle()
 {
  Console.WriteLine(StyleString);
 }

};
//--------------------------------------------End of Style Class
//StyleManager Class
class StyleManager
{
 //Fields
 protected Hashtable styleht=new Hashtable();
 protected PageStylePrototype styleref;

 //Constructors
    public StyleManager()
 {
        styleref=new PageStyle("thefirststyle");
  styleht.Add("style1",styleref);

  styleref=new PageStyle("thesecondstyle");
  styleht.Add("style2",styleref);
  
  styleref=new PageStyle("thethirdstyle");
  styleht.Add("style3",styleref);
 }

 //Indexers
 public PageStylePrototype this[string key]
 {
  get{ return (PageStylePrototype)styleht[key];}
  set{ styleht.Add(key,value);}
 }
};
//--------------------------------------------End of StyleManager Class
//TestApp
class TestApp
{
 public static void Main(string[] args)
 {
  StyleManager stylemanager =new StyleManager();

  PageStyle stylea =(PageStyle)stylemanager["style1"].Clone();
  PageStyle styleb =(PageStyle)stylemanager["style2"].Clone();
  PageStyle stylec =(PageStyle)stylemanager["style3"].Clone();

  stylemanager["style4"]=new PageStyle("theforthstyle");

  PageStyle styled =(PageStyle)stylemanager["style4"].Clone();
  
  stylea.DisplayStyle();
  styleb.DisplayStyle();
  stylec.DisplayStyle();
  styled.DisplayStyle();

  while(true){}
 }
};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章