浙江省长兴县建设局网站,wordpress 翻译函数,wordpress编辑主题,建设个人博客网站制作模板方法模式——在一个抽象类中定义一个操作中的算法骨架#xff0c;而将一些步骤延迟到子类中去实现#xff08;对应于我们根据自己的情况向模板填充内容#xff09;。模板方法使得子类可以不改变一个算法的结构前提下#xff0c;重新定义算法的某些特定步骤#xff0c;… 模板方法模式——在一个抽象类中定义一个操作中的算法骨架而将一些步骤延迟到子类中去实现对应于我们根据自己的情况向模板填充内容。模板方法使得子类可以不改变一个算法的结构前提下重新定义算法的某些特定步骤模板方法模式把不变行为搬到超类中从而去除了子类中的重复代码。 优点 1、封装不变部分扩展可变部分。 2、提取公共代码便于维护。 3、行为由父类控制子类实现。 1 /// summary2 /// 炒菜基类3 /// /summary4 public abstract class CookAbstract5 {6 /// summary7 /// 模板方法8 /// /summary9 public void Cook()
10 {
11 AddOil();
12 AddVegetables();
13 AddSalt();
14 }
15
16 /// summary
17 /// 加油
18 /// /summary
19 public virtual void AddOil()
20 {
21 Console.WriteLine(加油);
22 }
23 /// summary
24 /// 加蔬菜
25 /// /summary
26 public abstract void AddVegetables();
27 /// summary
28 /// 加盐
29 /// /summary
30 public virtual void AddSalt()
31 {
32 Console.WriteLine(加盐);
33 }
34 } 炒菜基类 1 /// summary2 /// 炒土豆3 /// /summary4 public class CookPotato : CookAbstract5 {6 public override void AddVegetables()7 {8 Console.WriteLine(加土豆);9 }
10 }
11 /// summary
12 /// 炒白菜
13 /// /summary
14 public class CookCabbage : CookAbstract
15 {
16 public override void AddOil()
17 {
18 Console.WriteLine(加花生油);
19 }
20 public override void AddVegetables()
21 {
22 Console.WriteLine(加白菜);
23 }
24 } 炒菜子类 1 CookAbstract potato new CookPotato();
2 CookAbstract cabbage new CookCabbage();
3
4 potato.Cook();
5 Console.WriteLine();
6 cabbage.Cook(); 客户端调用 结果 转载于:https://www.cnblogs.com/jasonbourne3/p/11096051.html