回调
2022-08-01 15:55:35 15 举报
AI智能生成
回调方法
作者其他创作
大纲/内容
定义
它们都是在一个大的算法骨架中,自由替换其中的某个步骤,起到代码复用和扩展的目的。
参考文献
59 | 模板模式(下):模板模式与Callback回调函数有何区别和联系?
基本实现
模板方法和回调的区别
从应用场景上来看
基本一致,都适用
从代码层面来看
回调基于组合关系来实现,把一个对象传递给另一个对象,是一种对象之间的关系;
模板模式基于继承关系来实现,子类重写父类的抽象方法,是一种类之间的关系
回调相对于模板模式会更加灵活
像 Java 这种只支持单继承的语言,基于模板模式编写的子类,已经继承了一个父类,不再具有继承的能力。
调可以使用匿名类来创建回调对象,可以不用事先定义类;而模板模式针对不同的实现都要定义不同的子类。
如果某个类中定义了多个模板方法,每个方法都有对应的抽象方法,那即便我们只用到其中的一个模板方法,子类也必须实现所有的抽象方法。而回调就更加灵活,我们只需要往用到的模板方法中注入回调对象即可。
回调的应用场景
JdbcTemplate
客户端监听事件
setClickListener()
JVM关闭时,执行钩子函数
addShutdownHook()
0 条评论
下一页