您当前的位置: 首页 > 

qq_34412985

暂无认证

  • 0浏览

    0关注

    1061博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

模板方法设计模式

qq_34412985 发布时间:2019-05-09 15:14:54 ,浏览量:0

        模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。多线程中thread中的start方法实际调用了run方法,run方法程序员实现或不实现。

工厂方法是特殊的模板方法。

好莱坞原则:将决策权放在高层模块中,以便决定如何以及何时调用低层模块。

Arrays.sort()模板方法,需要实现comparable接口。  InputStream中的read方法

public abstract class TemplateMethod{

final void  templateMethod(){

primitiveOperation1();

primitiveOperation2();

concreteOperation();

hook();

}

abstract void primitiveOperation1();//这两个方法定义成抽象,由具体子类实现

abstract void primitiveOperation2();

final void concreteOperation(){   //final,子类无法覆盖它。可被模板方法直接使用或者被子类使用

System.println.out("我是实现方法");

}

boolean hook(){return true;}//“默认不做事的方法”,钩子,子类可以视情况决定要不要覆盖它们。

}

public abstract class CaffeineBeverageWithHook{

void prepareRecipe(){

boilWater();

brew();

pourInCup();

if(customerWantsCondiments()){

addCondiments();

}

}

abstract void brew();

abstract void addCondiments();

void  boilWater(){System.println.out("Boiling water")};

void  pourInCup(){System.println.out("Pour In Cup")};

boolean customerWantsCondiments(){return true;}

}

关注
打赏
1653291990
查看更多评论
立即登录/注册

微信扫码登录

0.2790s