【设计模式】——解释器模式(24)

本文深入解析解释器模式,通过定义语言文法和解释器,演示如何处理正则表达式及浏览器应用实例。提供了实体类、解释类的具体实现,并展示了运行结果。

一、定义

解释器模式就是给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。

二、框架运用

正则表达式、浏览器就是对解释器模式做好的诠释

三、实战

1、实体类

@Data
public class Context {
    private String name;
    private Integer age;
}

2、解释类

public interface Expression {
    void interpret(Context context);
}


public class ExpressionA implements Expression {

    @Override
    public void interpret(Context context) {
        System.out.println("ExpressionA:"+context.getName()+"|"+context.getAge());
    }
}



public class ExpressionB implements Expression {
    @Override
    public void interpret(Context context) {
        System.out.println("ExpressionB:"+context.getName()+"|"+context.getAge());
    }
}

3、运行和结果

public class Client {
    public static void main(String[] args) {
        Context context = new Context();
        context.setName("大宗师");
        context.setAge(100);

        List<Expression> list = new ArrayList<>();
        list.add(new ExpressionA());
        list.add(new ExpressionB());

        list.forEach(l->l.interpret(context));

    }
}


Connected to the target VM, address: '127.0.0.1:58842', transport: 'socket'
ExpressionA:大宗师|100
ExpressionB:大宗师|100
Disconnected from the target VM, address: '127.0.0.1:58842', transport: 'socket'

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值