(二十)解释器模式-代码实现

介绍

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

应用场景:语言解释器(把我们能看懂的代码转换成了难看懂的机器码)

好处:以简单的方式使用复杂的东西。

例子

//解释器

package note.com.interpreter;

/**
 * 解释器
 * @author lxz
 *
 */
public class Interpreter {

    public void say(String lag){
        if("nh".equals(lag)){
            System.out.println("你好");
        }
    }
}

//调用解释器的人

package note.com.interpreter;

public class People {

    private Interpreter interpreter;

    public People(Interpreter interpreter){
        this.interpreter = interpreter;
    }

    /*
     * 简单语言输入
     */
    public void say(String lag){
        interpreter.say(lag);//调用解释器
    }
    public Interpreter getInterpreter() {
        return interpreter;
    }
    public void setInterpreter(Interpreter interpreter) {
        this.interpreter = interpreter;
    }

}

//测试类

package note.com.interpreter;

public class InterpreterTest {
    public static void main(String[] args) {
        Interpreter i = new Interpreter();
        People people = new People(i);
        people.say("nh");
    }
}

//结果

你好

时间: 2024-08-07 00:07:10

(二十)解释器模式-代码实现的相关文章

Java设计模式菜鸟系列(二十)解释器模式建模与实现

转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/40019829 解释器模式(Interpreter):它定义了对象与对象之间进行某种操作之后会得到什么值.一般主要应用在OOP开发中的编译器的开发中,所以适用面比较窄. 一.uml建模: 二.代码实现 /** * 解释器模式(Interpreter):它定义了对象与对象之间进行某种操作之后会得到什么值. * * 一般主要应用在OOP开发中的编译器的开发中,所以适用面比较窄. * * 示例:

设计模式 ( 二十 ) 访问者模式Visitor(对象行为型)

1.概述 在软件开发过程中,对于系统中的某些对象,它们存储在同一个集合collection中,且具有不同的类型,而且对于该集合中的对象,可以接受一类称为访问者的对象来访问,而且不同的访问者其访问方式有所不同. 例子1:顾客在超市中将选择的商品,如苹果.图书等放在购物车中,然后到收银员处付款.在购物过程中,顾客需要对这些商品进行访问,以便确认这些商品的质量,之后收银员计算价格时也需要访问购物车内顾客所选择的商品. 此时,购物车作为一个ObjectStructure(对象结构)用于存储各种类型的商品

(二十一)访问者模式-代码实现

介绍 概念:表示一个作用于某对象结构中的各元素的操作.它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作. 应用场景:实体之间内部属性有差别,而且实体类型经常增加.他们的调用方式相同,但是调用的规则经常变化. 缺点:实体的特殊内容访问类需要知道. 代码: //实体基类 package note.com.visitor; public abstract class Food { public abstract void show(IVisitor visitor); } //具体实体

(十)桥接模式-代码实现

意图:将抽象部分与它的实现部分分离,使它们都可以独立地变化. 使用场景:当一个接口中有多个方法定义,它的方法有多种有不同的实现,为了避免在子类中重复的定义相同的方法. //剥离功能1接口 package note.com.bridge; /** * 颜色接口 * @author lxz * */ public interface IColour { public void buildColour(); } //功能1实现 package note.com.bridge; public class

设计模式之二十三:解释器模式

解释器模式: 给定一个语言,定义了它的文法的一种表示,并定义了一个解释器,这个解释器使用该表示来解释语言中的句子. Given a language, define a representation for its grammar along with an interpreter that uses the representation to interpret sentences in the language. UML图: 主要包括: AbstractExpression:声明了一个执行操

面向对象编程思想-解释器模式

一.引言 我们常常在会在字符串中搜索匹配字符或判断一个字符串是否符合我们要的格式时,使用正则表达式,可解决问题的背后是一种什么思想呢?即我们今天要学习的内容,解释器模式 二.解释器模式 定义:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子 1.文法:即语法规则.在解释器模式中每一个语法都对应一个解释器对象,用来处理相应的语法规则.它对于扩展.改变文法规则都很方便 2.可以通过抽象语法树(Abstract Syntax Tree,AST)的图形方式来

二十四种设计模式:解释器模式(Interpreter Pattern)

解释器模式(Interpreter Pattern) 介绍给定一个语言, 定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子. 示例有一个Message实体类,某个类对它的操作有Get()方法.现在要求用具有某一规则的中文语法来执行这个操作. MessageModel using System; using System.Collections.Generic; using System.Text; namespace Pattern.Interpreter { //

设计模式(二十)解释器模式(Interpreter)-行为型

解释器模式Interpreter 解释器模式在软件开发中应用的比较少,它主要用在底层的编程语言设计上,因此不太容易理解. 联想:传一个算数表达式,对加减乘除自动匹配,能够自动计算其结果. 原理图 解释器模式实现原理图 单个运算符的数学公式计算机可以用来理解这个解释器模式的使用. 参考文献 [1] 郭峰.深入浅出设计莫模式[M].中国铁道出版社,2013(1):415-423.

【COCOS2DX-LUA 脚本开发之十二】Hybrid模式-利用AssetsManager实现在线更新脚本文件lua、js、图片等资源(免去平台审核周期)

转载自:http://www.himigame.com/iphone-cocos2dx/1354.html 首先说明一个问题: 为什么要在线更新资源和脚本文件!? 对于此问题,那要说的太多了,简单概括,如果你的项目已经在google play 或Apple Store 等平台上架了,那么当你项目需要做一些活动或者修改前端的一些代码等那么你需要重新提交一个新版本给平台,这时候你的上架时候是个不确定的时候,具体什么时候能上架,主要跟平台有关,你再着急,也没有用的. 那么如果你的项目是使用脚本语言进行