读书人

Template Method形式和Strategy模式:

发布时间: 2012-10-27 10:42:26 作者: rapoo

Template Method模式和Strategy模式:继承与委托
Themeplate Method

?

?

public class ApplicationRunner2 {private Application app = null;public ApplicationRunner2(Application app){this.app = app;}public void go(){//app.init();  不调用init方法while(!app.done())app.idle();app.cleanup();}}

?

?这样,只要使用new ApplicationRunner2(new WorkStrategy()).go()就可以了。

因此,Strategy模式比TemplateMethod模式多推荐了一个额外的好处。尽管TemplateMethod模式允许一个通用算法(run逻辑)操作多个可能的具体实现,但是由于Strategy模式完全遵循DIP原则,从而请允许每个具体实现都可以被多个不两只的通用算法(run逻辑或go逻辑)操纵。

一句话,少用继承,多用接口。

?

读书人网 >编程

热点推荐