为了账号安全,请及时绑定邮箱和手机立即绑定

钩子函数就是判断是否执行的一个辅助函数,那在实现的时候,里面的加柠檬方法是不是还是必须重写出来,只是不写实现的代码(方法空)?

正在回答

2 回答

这里你不妨继续深入一下, 考虑如下场景:通过询问的方式来决定是否加入调料。比如,通过在命令行显示“是否加入调料?(Y/N)", 等待用户的反馈。然后返回true或false。然后你会发现子类对算法的实现具有了更大的灵活性,你的子类可以应对不用的场景,用户想喝茶,是否加入调料都可以轻松满足。正所谓加或不加,茶就在那里,不多不少。

总之,通过钩子函数我们合理的扩展了算法的使用场景,提升了代码弹性和可复用性,这就是我们使用模式的终极目的。


2 回复 有任何疑惑可以回复我~

是的,一般情况下(即你的实现类不是抽象类)是必须的。因为父类的加调料方法是抽象方法(abstract修饰)。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
模式的秘密---模板方法模式
  • 参与学习       32231    人
  • 解答问题       65    个

封装算法框架的模板方法模式,用案例告诉你模板方法模式的强大

进入课程
意见反馈 帮助中心 APP下载
官方微信