1. 将子类相同的方法抽象到父类,不同的方法以重写来实现
2. 适用场景 :
a. 子类间主方法的流程一样且有大量重复代码
3. 代码
class TemplateMethod { public static void Test() { var one = new TemplateOne(); one.MainMethod(); var two = new TemplateTwo(); two.MainMethod(); } } internal abstract class TemplateBase { public void MainMethod() { SonMethod(); Console.WriteLine("这是子类共有的方法"); SonMethod1(); } public abstract void SonMethod1(); public abstract void SonMethod(); } internal class TemplateOne : TemplateBase { public override void SonMethod1() { Console.WriteLine("这是 One 独有的方法1"); } public override void SonMethod() { Console.WriteLine("这是 One 独有的方法"); } } internal class TemplateTwo : TemplateBase { public override void SonMethod1() { Console.WriteLine("这是 Two 独有的方法1"); } public override void SonMethod() { Console.WriteLine("这是 Two 独有的方法"); } }
时间: 2024-10-02 17:24:56