当前位置: 首页 > news >正文

手机平板购物网站的设计背景/网络营销的认识与理解

手机平板购物网站的设计背景,网络营销的认识与理解,常用的erp系统,北京seo实战培训班介绍 意图:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。 主要解决:对于一些固定文法构建一个解释句子的解释器。 何时使用:如果一种特定类型的问题发生的…

介绍

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

主要解决:对于一些固定文法构建一个解释句子的解释器。

何时使用:如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。

如何解决:构建语法树,定义终结符与非终结符。

关键代码:构建环境类,包含解释器之外的一些全局信息,一般是 HashMap。

应用实例:编译器、运算表达式计算。

优点: 1、可扩展性比较好,灵活。 2、增加了新的解释表达式的方式。 3、易于实现简单文法。

缺点: 1、可利用场景比较少。 2、对于复杂的文法比较难维护。 3、解释器模式会引起类膨胀。 4、解释器模式采用递归调用方法。

使用场景: 1、可以将一个需要解释执行的语言中的句子表示为一个抽象语法树。 2、一些重复出现的问题可以用一种简单的语言来进行表达。 3、一个简单语法需要解释的场景。

注意事项:可利用场景比较少,JAVA 中如果碰到可以用 expression4J 代替。

 案例

package com.lzhsite.technology.designPattern.Interpreter.FinanceDemo;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;public class ClientForFinanceDemo
{public static void main(String[] args){String expStr = getExpStr();HashMap<String, Integer> var = getValue(expStr);Calculator calculator = new Calculator(expStr);System.out.println("运算结果为:" + expStr + " = " + calculator.run(var));}public static String getExpStr(){String in = null;System.out.println("请输入表达式:");try{in = (new BufferedReader(new InputStreamReader(System.in))).readLine();} catch (IOException exception){exception.printStackTrace();}return in;}public static HashMap<String, Integer> getValue(String expStr){String in = null;HashMap<String, Integer> map = new HashMap<String, Integer>();for (char ch : expStr.toCharArray()){if (ch != '+' && ch != '-'){if (!map.containsKey(String.valueOf(ch))){System.out.print("请输入" + ch + "的值:");try{in = (new BufferedReader(new InputStreamReader(System.in))).readLine();} catch (IOException exception){exception.printStackTrace();}map.put(String.valueOf(ch), Integer.valueOf(in));}}}return map;}
}

 

package com.lzhsite.technology.designPattern.Interpreter.FinanceDemo;import java.util.HashMap;
import java.util.Stack;public class Calculator
{private Expression expression;public Calculator(String expStr){Stack<Expression> stack = new Stack<Expression>();char[] charArray = expStr.toCharArray();Expression left = null;Expression right = null;for (int i = 0; i < charArray.length; i++){switch (charArray[i]){case '+':left = stack.pop();right = new VarExpression(String.valueOf(charArray[++i]));stack.push(new AddExpression(left, right));break;case '-':left = stack.pop();right = new VarExpression(String.valueOf(charArray[++i]));stack.push(new SubExpression(left, right));break;default:stack.push(new VarExpression(String.valueOf(charArray[i])));}}this.expression = stack.pop();}public int run(HashMap<String, Integer> var){return this.expression.interpreter(var);}
}

 表达式接口

package com.lzhsite.technology.designPattern.Interpreter.FinanceDemo;import java.util.HashMap;public abstract class Expression
{public abstract int interpreter(HashMap<String, Integer> var);
}

运算符号 

package com.lzhsite.technology.designPattern.Interpreter.FinanceDemo;public abstract class SymbolExpression extends Expression
{protected Expression left;protected Expression right;public SymbolExpression(Expression left, Expression right){this.left = left;this.right = right;}
}
package com.lzhsite.technology.designPattern.Interpreter.FinanceDemo;import java.util.HashMap;public class SubExpression extends SymbolExpression
{public SubExpression(Expression left, Expression right){super(left, right);}public int interpreter(HashMap<String, Integer> var){return super.left.interpreter(var) - super.right.interpreter(var);}
}

变量 

package com.lzhsite.technology.designPattern.Interpreter.FinanceDemo;import java.util.HashMap;public class VarExpression extends Expression
{private String key;public VarExpression(String key){this.key = key;}public int interpreter(HashMap<String, Integer> var){return var.get(this.key);}
}

示例代码:

https://gitee.com/lzhcode/maven-parent/tree/master/lzh-technology/src/main/java/com/lzhsite/technology/designPattern/Interpreter/FinanceDemo

http://www.jmfq.cn/news/4951369.html

相关文章:

  • 企业网站诊断与优化方案/百度应用商店下载
  • 大连地区建设网站/小红书seo
  • 做网站 php j2ee/做小程序的公司
  • 网络营销策划书格式/seo公司seo教程
  • 自己做网站分销/一个品牌的策划方案
  • 个人可以做商城网站吗/免费网站制作app
  • 杭州手机网站制作电脑公司/百度一下网页搜索
  • 代理网站建设/网上国网推广
  • 深圳企业视频制作公司/武汉百度seo排名
  • 儿童摄影网站源码/宁波网站关键词优化代码
  • 网站建设开发服务费会计科目/自媒体平台app
  • 泰安建设厅网站/百度竞价是什么意思?
  • 临沂最好的做网站公司/关键词优化排名工具
  • 如何建立网站的快捷方式/seo排名推广工具
  • 网站设计登录界面怎么做/微信推广引流方法
  • 云南哪有网站建设报价的/谷歌关键词优化怎么做
  • 河北疫情最新消息/包头整站优化
  • java毕业设计网站建设/网络推广方式有哪几种
  • wordpress个人下载网站/百度帐号申请注册
  • 许昌企业网站建设/广告推广方案
  • 优化王省油器是真的吗/抖音seo源码搭建
  • 青岛网站制作公司哪家正规/自助建站系统平台
  • 拖拽建设网站源码/优化大师怎么提交作业
  • 免费vue前端模板网站/百度竞价广告代理
  • 怎么做模板网站的报价表/网络营销都有哪些形式
  • 安心保险官方网站/成都企业seo
  • 网页图片不能正常显示的原因/北京推广优化经理
  • 网站制作和app制作/网站维护中是什么意思
  • 施工企业安全生产评价汇总表最终须由( )签名。/南宁正规的seo费用
  • 网站开发报价单模板/南宁百度推广排名优化