设计模式-模板方法模式
public abstract class Moban
{
public string name;
public Moban(string _name)
{
this.name = _name;
}
private void showSiteName()
{
Console.WriteLine("这是{0}网站",this.name);
}
private void createHead()
{
Console.WriteLine("这里是页头");
}
private void createFoot()
{
Console.WriteLine("这里是页脚");
}
public abstract void createContent();//内容区
public void createHtml()
{
showSiteName();
createHead();
createContent();
createFoot();
Console.ReadLine();
}
}
public class SiteA : Moban
{
public SiteA(string _name) : base(_name)
{
}
public override void createContent()
{
Console.WriteLine("我是{0}网站的内容区:阿里巴巴和腾讯今天合并了",this.name);
}
}
public class SiteB : Moban
{
public SiteB(string _name) : base(_name)
{
}
public override void createContent()
{
Console.WriteLine("我是{0}网站的内容区:马云和马化腾不得不说的故事", this.name);
}
}
//前端:
static void Main(string[] args)
{
Moban sa = new SiteA("百家论坛");
Moban sb = new SiteB("天涯论坛");
sa.createHtml();
sb.createHtml();
}
总结:模板方法模式貌似最常用,没什么好说的,用原型模式改造下。
目前创新互联已为上千家的企业提供了网站建设、域名、雅安服务器托管、绵阳服务器托管、企业网站设计、通州网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
public class MobanPrototype:ICloneable
{
public string name { get; set; }
public MobanPrototype()
{
}
private void showSiteName()
{
Console.WriteLine("这是{0}网站", this.name);
}
private void createHead()
{
Console.WriteLine("这里是页头");
}
private void createFoot()
{
Console.WriteLine("这里是页脚");
}
private void createContent(string content)//内容区
{
Console.WriteLine(content);
}
public void createHtml(string content)
{
showSiteName();
createHead();
createContent(content);
createFoot();
Console.ReadLine();
}
public object Clone()
{
return (MobanPrototype)this.MemberwiseClone();
}
}
//前端
static void Main(string[] args)
{
//Moban sa = new SiteA("百家论坛");
//Moban sb = new SiteB("天涯论坛");
//sa.createHtml();
//sb.createHtml();
MobanPrototype mobanPrototype = new MobanPrototype();
MobanPrototype siteA = (MobanPrototype)mobanPrototype.Clone();
MobanPrototype siteB = (MobanPrototype)mobanPrototype.Clone();
siteA.name = "百家论坛";
siteB.name = "天涯论坛";
siteA.createHtml(string.Format("我是{0}网站的内容区:阿里巴巴和腾讯今天合并了", siteA.name));
siteB.createHtml(string.Format("我是{0}网站的内容区:马云和马化腾不得不说的故事", siteB.name));
}
本文标题:设计模式-模板方法模式
路径分享:http://myzitong.com/article/pgpghs.html