目录

行为型:解释器模式

释义

解释器模式,通过解释器对内容进行解释。

/%E8%A1%8C%E4%B8%BA%E5%9E%8B%E8%A7%A3%E9%87%8A%E5%99%A8%E6%A8%A1%E5%BC%8F/%E8%A1%8C%E4%B8%BA%E5%9E%8B%EF%BC%9A%E8%A7%A3%E9%87%8A%E5%99%A8%E6%A8%A1%E5%BC%8F.resources/1CF1C70C-25F1-4221-B3D3-5B23CF716289.png
解释器模式

表达式Expression由两个子类:

  • 基础表达式BaseExpression
  • 与解释器AndInterpreter

基础表达式的两个实例exp1exp2传入与解释器,使用与解释器对interpreter()进行解释。

表达式

1
2
3
interface Expression {
    fun interpreter()
}

基础表达式

1
2
3
4
5
class BaseExpression() : Expression {
    override fun interpreter(context: String) {
        doInterpreter(context)
    }
}

解释器

1
2
3
4
5
6
7
8
9
class AndInterpreter(
    var String exp1,
    var String exp2
) {
    override fun interpreter() {
        // “与”
        exp1.interpreter()&&exp2.interpreter()
    }
}

使用

1
2
3
4
5
6
7
8
9
fun main() {
    // 创建基础表达式
    val exp1: Expression = BaseExpression("string1")
    val exp2: Expression = BaseExpression("string2")
    // 创建解释器
    val interpreter: AndInterpreter = AndInterpreter(exp1, exp2)
    // 解释
    interpreter.interpreter()
}