设计模式之模板Template
模板方法模式中涉及了两个角色:
- 抽象模板角色(Vegetable扮演这个角色):定义了一个或多个抽象操作,以便让子类实现,这些抽象操作称为基本操作。
- 具体模板角色(ChineseCabbage和Spinach扮演这个角色):实现父类所定义的一个或多个抽象方法。
优点:
- 实现了代码复用
- 能够灵活应对子步骤的变化,符合开放-封闭原则
缺点:因为引入了一个抽象类,如果具体实现过多的话,需要用户或开发人员需要花更多的时间去理清类之间的关系。
======================================
public class TemplateMode
{
public TemplateMode()
{
Vegetable teget = new Vegetable();
ITemplate template = new Meat();
}
}
public abstract class ITemplate
{
public ITemplate()
{
pouroil();
fire();
pourfood();
stirfry();
}
private void pouroil() { Console.WriteLine("倒油"); }
private void fire() { Console.WriteLine("点火"); }
public abstract void pourfood();
private void stirfry() { Console.WriteLine("翻炒"); }
}
public class Vegetable : ITemplate
{
public override void pourfood()
{
Console.WriteLine("放菜");
}
}
public class Meat : ITemplate
{
public override void pourfood()
{
Console.WriteLine("放肉");
}
}
浙公网安备 33010602011771号