天天看点

Layers 模式

分层模式是有助于将应用程序划分为多组子任务。每组子任务都有自己的抽象层。

最典型的应用是OSI的七层模型,每一层都有自己特定的任务。

View Code

这里写的是底下三层的一个策略。上层向底层请求服务。还有底层向上层请求服务的一个过程。

在进行分层的时候,需要制定的错误策略就是尽量少的将错误向上层传递。最好在当前层进行处理。否则效率会很低,并且上层也不知道你这层出现的这个错误到底是什么意思。

关于分层还有宽松的分层系统。

对于咱们比较熟悉的应该是API,在底层实现了一套API,然后一般在高层再封装一套易用的API,这样子,你既可以使用上层封装的API也可以使用底层比较晦涩难用的API。

但是分层还是有很多的缺点:行为变化引发的雪崩效应。效率较低(任务在各层中进行传递,而不是立即处理)。不必要的工作(假设读取底层的一组数据,多个上层对底层该数据进行读取,并且都是深度复制,那产生的效率就会低下)。难以确定正确的层次粒度(这个层次粒度要根据实际情况进行分析,并给出正确的取舍。关于串口通信发送命令时的组帧情况,是否通过多次组帧,还是直接一下子将帧组好直接发送过去)。

面向模式的软件架构 模式系统 中的Layers模式