b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

head first设计模式?java设计模式书电子版?radiusplugin?模板方法模式(Head first 设(2)

电脑杂谈  发布时间:2016-06-11 10:02:55  来源:网络整理

public void PrepareRecipe() { BoilWater(); Brew(); PourInCup(); (WantCondiments()) { AddCondiments(); } } 加入一个方法,用来判断是否需要加调料 WantCondiments() { return true; }

在子类中,可以通过不同的方式类覆盖WantCondiment()方法。用来表示是否要加调料的标准,在此方法中注意必须加入virtual关键字,以便子类中使用override重写。下面看看咖啡中的方法:

WantCondiments() { return false; }

下面是测试代码:

class Program { static void Main(string[] args) { CoffeeinBeverage1 coffeninBeverage = new Coffee1(); coffeninBeverage.PrepareRecipe(); Console.ReadKey(); } }

输出结果:

发现已经去掉了调料。

五、模板方法模式和策略模式以及工厂方法的对比

在看模板方法的时间,很容易想到工厂方法。因为他们都是让具体的实现放在子类中,但是工厂方法主要是生产出产品,然后去应用产品。模板方法是在于依赖子类中的步骤中的其中几个步骤,具体的步骤已经在基类中写好了。

同样模板方法模式和策略模式都是封装算法。但是策略模式中的每个策略都是单独的一个类,。可以随时去更改策略。模板方法模式虽然也是封装了算法,其实主要在于封装步骤,具体的实现是根据依靠各个子类。

除此之外,模板方法模式还涉及到一个好莱坞原则:

不要给我打电话,我会主动和你打电话。

在模板方法模式中扮演好莱坞的角色是抽象类,子类是演员的角色。

一般需要调用子类中的方法都已经在模板中定义好了,需要时,会主动联系各个步骤,最好在子类中不要去调用抽象类中的方法具体方法,以防止子类和父类的调用的凌乱。

六、总结和源码

本文主要先列出了模板方法模式的定义,然后通过例子来帮助理解模式,接着提出钩子在模板方法模式中的使用,最后简单对比了模板方法模式、策略模式以及工厂方法模式。

源码

以上就是关于head first设计模式的全部内容,相信你一定会非常满意。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shenmilingyu/article-8632-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...