用C#开发程序应用框架之二(转)

请不要将template方法写为虚方法,因为这将给最终用户修改template方法的能力从而改变了整个框架的基础。也就是说这仅是框架开发都需要完成的任务,最终用户要做的就是从框架基类继承并重写这些在框架中定义的抽象类以实现自己定制的功能。

// 从基类继承

class MyClass : AppFramework

{

  // 将抽象方法重写以实现定制的功能

  override public void init()

  {

   Console.WriteLine("MyClass::init");

  }

  override public void run()

  {

   Console.WriteLine("MyClass::run");

  }

  override public void destroy()

  {

   Console.WriteLine("MyClass::destroy");

  }

  // the main method defined

  public static void Main(String [] arg)

  {

   MyClass myClass = new MyClass();

  }

}

   尽管Main()函数与这些重写的函授放在一个类中是可行的,但最好是放在一个单独的类中。下面是全部的代码.

<code>

using System;

abstract class AppFramework

{

  public AppFramework()

  {

   templateMethod();

  }

  public abstract void init();

  public abstract void run();

  public abstract void destroy();

  private void templateMethod()

  {

   Console.WriteLine("Initializing Template Engine");

   init();

   run();

   destroy();

   Console.WriteLine("Ending Template Engine");

  }

}

class MyClass : AppFramework

{

  override public void init()

  {

   Console.WriteLine("MyClass::init");

  }

  override public void run()

  {

   Console.WriteLine("MyClass::run");

  }

  override public void destroy()

  {

   Console.WriteLine("MyClass::destroy");

  }

  public static void Main(String [] arg)

  {

   MyClass myClass = new MyClass();

  }

}

<code>
[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/79548/viewspace-926561/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/79548/viewspace-926561/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值