多级模式对话框
介绍
这篇文章继续了我的“新模式想法”系列。 我将描述适配器模式的特殊版本,该模式可以保证对对象的多个访问级别。 特别是,我将显示3个主要级别-读,写和类访问。
动机
我们将考虑一个2层系统:
- 顶层由对象文件夹组成。 每个文件夹包含一种类型的对象
- 底层由对象本身组成
我们需要做的是对该系统进行单独的访问。 我们可以在任何层上具有读访问权,写访问权和类访问权。 读取访问权限意味着获取或读取文件夹列表,文件夹或对象的属性。 写访问权限意味着从读取级别到能够将文件夹添加/删除到列表,能够添加/删除文件夹中的对象以及对对象属性进行写访问的所有内容。 类访问意味着文件夹和对象的类具有一些可以公开的其他较低级别的详细信息。
适用性
当您需要对对象层次结构使用不同的访问级别时,请使用此模式。 访问级别的层次结构明确定义,下一个级别具有上一个级别的所有特权加上它自己的某些特权。
结构体
通常,可能会有更复杂的模型,但是在此专用版本中,我们将使用以下访问级别:读取,写入,类。 我们还假设每个下一个级别都具有上一级别的所有方法以及该级别特定的方法。 结构中的所有对象都必须具有以下常规类型层次结构:
如果需要读访问权限,则返回ReadInterface;如果需要写访问权限,则返回WriteInterface。 课程不是公开的。 类访问意味着类内可能存在仅在类或包中使用的特定操作。
但这并不是全部。 我们分为2层:文件夹和对象。 确保非常重要的一点是,如果外部实体对某个文件夹具有读访问权限,则它必须对该文件夹中的对象具有读访问权限。 读取接口的方法(如getObject(<parameters>)
必须返回对象的读取接口:
public IReadObject getObject(<parameters>) {
...
}
根据此原理,写接口的方法必须返回对象的写接口:
public IWriteObject getObjectFull(<parameters>) {
...
}
这是文件夹的结构:
可以使用相同的原理添加更多的层–对层的读取访问权限意味着对所有较低层的读取访问权限,对层的写入访问权限意味着对较低的层的写入访问权限等等。在层次结构中具有相同级别的访问权限。
就像为每个访问级别为实现类创建适配器一样。
参加者
文件夹 –包含对象
对象 –可以访问的元素
ReadInterface –任何层的接口,表示对该层对象的读取访问
WriteInterface –任何层的接口,表示对该层对象的写访问 实现类 –此层元素的类
后果
- 对文件夹和对象的一致访问级别 。 通常,它可能更细粒度,如此处的读取访问和此处的写入访问。 但是在大多数情况下,对层次结构中某些对象的读取访问权限意味着对以下对象的读取访问权限。
- 明确定义了所有访问级别的接口 ,具有良好的封装性。
翻译自: https://www.javacodegeeks.com/2018/11/multilevel-adapter-pattern.html
多级模式对话框