一个不错的视频教程: https://www.bilibili.com/video/av41443026/?p=1
个人理解: 就好像领导给你一个表格让你填,表格本身就是个模板,你必须在它规定的 年龄栏中填写你的年龄,在个人能力栏中填写自己的个人能力,你领导看完你填的表格,又给了你对面同事一张让他填,虽然你们的表格(抽象类或接口)都一样,但是你们填写的具体的年龄和个人能力(具体实现方法)因人而异,这就是模板方法。
其实就是: 接口或者抽象类定义好方法框架(稳定的),实现类(变化的)去遵循这个定义好的框架,但是实现类中每个方法的具体实现是实现类根据自己情况写的(如:Activity中的onCreate()方法)
举个简单例子:
这是一个模板 哪里结婚都要彩礼的
interface 结婚 {
fun 彩礼()
}
张三结婚了,他的媳妇是仙女,天上的彩礼可不便宜,于是他结婚所需要的彩礼是10w
class 张三 : 结婚 {
override fun 彩礼() {
Log.e("AAA","我花费了10w娶了个仙女")
}
}
李四也结婚了,他的媳妇是某个农村的平凡姑娘,他的彩礼是50w,丈母娘说少一分都不行!!!由于两人爱的深切,所以李四借钱结了婚~
class 李四: 结婚 {
override fun 彩礼() {
Log.e("AAA","我花费了50w娶了个平凡姑娘")
}
}
总结: 模板方法 找出共性进行封装,减少重复代码