软件构造笔记(八)

Observer pattern

这种模式是一种发布订阅模式,发布方变化,通知订阅方,订阅方在发布方注册,通过接口分离订阅方和发布方。
具体来说,在发布方中定义了一个list用来存放订阅方,在发布方内部有添加删除发布方的函数。在发布方中定义一个notify函数,可以用来遍历列表中元素,使得每个元素对发布方更新。在订阅方中,可以访问发布方中的一个元素。利用这个函数来实现交互。

Mediator 模式

这种模式是用来处理物体之间的交互的。当有许多物体时,他们之间并不直接交互,而是通过一个中介来进行。这就是Mediator模式。
具体来说,在每个物体内部定义一个接受和发出消息函数。内部存放一个 Mediator,在Mediator中存放一个物体的 list,之后在 Mediator定义一个发送消息的函数,这个函数在物体内部的发出消息被调用。

Visitor模式

这种方法将数据结构和其上的处理进行分离,操作逻辑变化,修改visitor即可。
具体来说,就是在访问一个类内部变量时,不直接调用。通过一个visitor类,进行访问类的变量,在类的内部定一个函数,在函数中调用visitor中的方法。

Chain of Responsibility

这种方法的作用是处理分级的情况,在每个类内部存放下一个等级的物体,如果不能处理转交给存放的物体处理。

基于语法编程

语法用来判断合法性,将字符和字节序列解析
正则表达式用来处理字符串,查分,信息提取
解析器用来根据语法来解析字符串
产生式中只有终结符和操作符,则称为正则表达式。

Marketdown and HTML

markdown和HTML都是利用一些符号如_ 或<>来使得文本结构分隔开,通过正则语法,就可以提取出想要的内容。

状态模式

主要思想是,设计一个State接口,多个子类State实现了这个接口,在每个子类State中返回别的类型的子类。在State外部定一个新的类,新的类通过调用子类State的方法,来更改内部的State类型。

备忘录模式

这种设计模式,可以将系统的每个状态保存下来,在使用时可以通过定义的方法,返回到特定的某个状态。
具体做法是,通过设置State类,Memento类,其中Memento类中包含一个State类,用一个caretaker类来存放Memento列表,用来存放和添加 Memento类。而在原系统的类中存放一个State类,表示该系统的状态。想要保存和恢复状态时,调用caretaker中的Memento存放的类即可恢复和保存。

健壮性和正确性
健壮性

所谓健壮性要求我们处理许多用户输入不合理的情况,我们一般可以通过返回异常,报出相对应的错误信息来处理。

正确性

首先要满足正确性就要满足规格说明,其次要不就不返回结果,但是不能返回错误结果。健壮性可以修复一些不正确的输入,但是正确性遇到不完美输入会产生错误。

处理

在外部接口部分,需要与用户进行交互的部分。要加强健壮性的处理,因为用户的输入很有可能是不正确的。
在内部部分,要注重正确性,因为在内部交互很多时候输入都是正确的。

错误和异常

处理错误一般采用预先防止,错误恢复,优雅退出
一种方法是在遇到不合理的情况时,返回一个中性的值也就是返回一个人畜无害的值。但有些情况要注意保持正确性。
另一种方法是用下一个有效值代替,或者返回之前的值。
还有就是利用日志,输出错误信息,或者利用异常,抛出异常。

对于抛出异常一般采取try catch模块来处理,在catch中填写的是当捕获到异常时的处理方法。对于编程人员来说,尽量减少运行时的异常,因为这是可以避免的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值