目录

行为型:模板模式

释义

模板模式,模板为抽象类,子类继承模板,但是调用的时候调用的是模版的方法。

/%E8%A1%8C%E4%B8%BA%E5%9E%8B%E6%A8%A1%E6%9D%BF%E6%A8%A1%E5%BC%8F/%E8%A1%8C%E4%B8%BA%E5%9E%8B%EF%BC%9A%E6%A8%A1%E6%9D%BF%E6%A8%A1%E5%BC%8F.resources/2DA3AB5D-04C4-44AB-A45B-0C145ECC14DA.png
模板模式

子类JuiceBurger继承模板类Food,调用时将以抽象类中定义的方式进行。即形式上不是Juice.eat()而是Model.eat(),实质上时Juice.eat()

抽象类

1
2
3
abstract class Food {
    fun eat()
}

子类

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
class Juice : Food {
    fun eat() {
        println("drink juice")
    }
}

class Burger : Food {
    fun eat() {
        println("eat burger")
    }
}

使用

1
2
3
4
5
6
7
8
fun main() {
    val food1: Food = Juice()
    val food2: Food = Burger()
    
    // 形式上调用的是父类的方法,实际上会调用子类的方法
    food1.eat()
    food2.eat()
}