State-based construction

使用有限状态机FSM来定义程序的行为,使用状态来控制程序的执行,根据当前状态,决定下一步要干什么,干完后转到什么状态

Automata-based programming基于自动机的编程

将程序看作是一个有限状态自动机,侧重于对状态以及状态装换的抽象和编程

State Pattern状态模式 (behavioral pattern)

软件构造5.3
软件构造5.3
软件构造5.3
软件构造5.3

Memento Pattern备忘录模式 (behavioral)

记住对象的历史状态,以便于回滚

  • originator 需要备忘的类
  • caretaker 添加originator的备忘记录和恢复
  • mementor 备忘录,记录originator对象的历史状态
    软件构造5.3
    软件构造5.3

Grammar-based construction语法驱动的构造

有一类应用,从外部读取文本数据,在应用中进一步处理

Constituents of a Grammar语法成分

Literal Strings 文字字符串 被称为终止节点,叶节点
形式:nonterminal ::= expression of terminals, nonterminals, and operators
非终结符::=终结符、非终结符和运算符的表达式

Operators in a Grammar运算符

  • 连接:空格表示
  • 重复:* 可以0个
  • 选择: |
    后缀运算符优先级更高 *,?,+
  • 圆括号:改变优先级
  • 匹配 ::=
  • 选择 : ?
  • 一个或更多个: +
  • 字符集合: [ ]
  • 非:[^ … ] 不包含

Recursion in grammars语法中的递归

软件构造5.3
注意好空格

Parse Trees解析树

软件构造5.3

Markdown and HTML标记和HTML

Regular Grammars and Regular Expressions正则文法和正则表达式

简化之后可以表达为一个产生式而不包括任何非终止节点
软件构造5.3
正则表达式:去除引号和空格

  • 任何单个字符 .
  • 任何数字 \d
  • 任何白符号 \s [a-zA-Z_0-9]
  • 任何字符包括下划线 \w
  • 转义运算符 ,使其与字面上匹配
    软件构造5.3
    软件构造5.3

Using regular expressions in Java

Pattern 是对正则表达式进行编译后得到的结果
Matcher 利用Pattern对输入字符串进行解析
软件构造5.3
预定义字符类
软件构造5.3
量词
软件构造5.3
边界匹配,匹配发生的位置
软件构造5.3

相关文章:

  • 2021-07-07
  • 2021-07-15
  • 2021-12-28
  • 2021-06-13
  • 2021-06-25
  • 2021-11-12
  • 2021-04-11
  • 2021-06-03
猜你喜欢
  • 2021-05-09
  • 2021-10-05
  • 2021-08-02
  • 2021-05-25
  • 2021-12-05
  • 2021-07-21
相关资源
相似解决方案