面向可维护性的构造技术

状态模式

允许在运行时修改对象的行为或状态,每个行为用一个状态类表达。状态对象通常不包含任何属性,状态改变时修改状态对象。
通常用法是:一个状态的接口(其中有状态转移的方法)其有多种实现,再建立一个类接受外部的输入,再委托给状态类实现状态的转移。
在实验3中,通过状态模式实现了不同计划项状态的转换。通过状态模式很好的实现了状态转换。

备忘录模式

caretaker:添加备忘录记录和恢复,保留一个备忘录列表,提供添加返回备忘录的方法。这一个类是客户端用于管理备忘录的类
Originator:需要备忘的类,其需要实现一个返回备忘录的方法。
Memento:备忘录,记录originator对象的历史状态。

语法驱动的构造

这一部分需要掌握的内容为:
(1)语法的组成:一个语法树是由终止节点和非终止节点构成的
(2)语法中的操作符:*、|、连接、+、?。以及他们的优先级为 *、?、+优先级最高,连接次之,|最低。
(3)语法中的递归,例如hostname::=‘word’|hostname,这样的形式为递归的形式
(4)Markdown和HTML:需要掌握他们的区别,Markdown不支持标记的嵌套,所谓嵌套即两个产生式中你中有我我中有你。
(5)正则表达式
正则语法:简化之后可以表达为一个产生式而不包含非终止节点。在正则表达式中,很多的符号要通过\进行转义,如果在java中转义则需要\。
上下文无关文法:左侧只含有一个非终结符,他定义的语法范畴是完全独立于这种范畴可能出现的环境,无需考虑上下文。
(6)在java中使用正则表达式
pattern对象是对正则表达式进行编译后得到的结果。
matcher对象:利用pattern对输入字符串进行解析。
greedy:匹配器被强制要求第一次尝试匹配时读入整个输入串,如果第一次尝试匹配失败,则从后往前逐个字符的回退并尝试再次匹配。
reluctant:从首位置开始,在尝试匹配时值勉强读入一个字符,知道尝试完整个字符串。
possessive:直接匹配整个字符串,完全比配则成功,否则失败

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值