扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
// 这个类之所以被定义为抽象类,是因为用户方法还没有被实现 abstract class AppFramework { // 构造器调用template方法 public AppFramework() { templateMethod(); } // 下面的方法需要最终用户实现 public abstract void init(); public abstract void run(); public abstract void destroy(); //template方法是框架的核心 private void templateMethod() { Console.WriteLine("Initializing Template Engine"); // template 方法顺序调用所需要的方法 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"); } // the main method defined public static void Main(String [] arg) { MyClass myClass = new MyClass(); } } |
<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> |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。