b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

解释器模式举例_lua解释器交互模式_动态编译与解释器模式(15)

电脑杂谈  发布时间:2017-02-22 17:29:35  来源:网络整理

这样,我们就可以使用了,方式如下:

public class TestUse {    public static void main(String args[]) throws Exception{        //接收者        MakeFile makeFile = new MakeFile();        //命令        CommandCreate create = new CommandCreate(makeFile);        CommandDelete delete = new CommandDelete(makeFile);        //请求者        Client client = new Client();        //执行命令        client.setCommand(create).executeCommand("d://test1.txt");        client.setCommand(create).executeCommand("d://test2.txt");        client.setCommand(delete).executeCommand("d://test2.txt");    }}//执行完后在D盘会有一个test1.txt的文件,test2.txt本页创建了,不过又被删除了。。

这里只是简单的实现,诸如CommandCreate命令的操作,如果我们需要undo的,那么就需要在命令接口中添加undo()方法并在具体命令中实现即可(将操作保存到栈里即可,undo的时候出栈并撤销操作)。

命令模式不宜滥用,比如:使用这种模式,会多出来很多对象(命令)。

命令模式中还有一种具体命令叫宏命令,它会包含一些其他具体命令的引用,执行宏命令可以执行这个宏命令所包含的引用的命令,概念清楚后实现起来也是容易的:

比如输出文章的命令,有中文输出命令、英文输出命令和宏命令,宏命令包含了其他两个命令的引用(可以使用列表保存这些命令),如果执行宏命令,宏命令会一次执行它所包含引用的其他命令(迭代命令列表并执行即可)。

8、解释器模式(Interpreter Patterm)

Given a language,define a representation for its grammar along with an interpreter that uses the representation to interpret sentences in the language.

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

何时使用

当有一个简单的语言需要解释执行,并且可以将该语言的每一个规则表示为一个类时,就可以使用解释器模式。

优点

将每一个语法规则表示成一个类,方便与实现简单的语言。 由于使用类表示语法的规则,可以较容易改变或扩展语言的行为。 通过在类结构中加入新的方法,可以在解释的同时增加新的行为。

概念其实很简单。在有些问题上,我们可能希望自定定义简单的语言来描述,然后我们自己能解释它。

解释器模式一般包括四种角色:

抽象表达式:该角色为一个接口,负责定义抽象的解释操作。 终结符表达式:实现抽象表达式接口的类。 非终结表达式:也是实现抽象表达式的类。 上下文(Context):包含解释器之外的一些全局信息。

使用该模式设计程序一般需要三个步骤:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-33893-15.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...