多级适配器模式

介绍

这篇文章继续了我的“新模式想法”系列。 我将描述适配器模式的特殊版本,该模式可以保证对对象的多个访问级别。 特别是,我将显示3个主要级别-读,写和类访问。

动机

我们将考虑一个2层系统:

  1. 顶层由对象文件夹组成。 每个文件夹包含一种类型的对象
  2. 底层由对象本身组成

多级适配器

我们需要做的是对该系统进行单独的访问。 我们可以在任何层上具有读访问权,写访问权和类访问权。 读取访问权限意味着获取或读取文件夹列表,文件夹或对象的属性。 写访问权限意味着从读取级别到能够将文件夹添加/删除到列表,能够在文件夹中添加/删除对象以及对对象属性进行写访问的所有内容。 类访问意味着文件夹和对象的类具有一些可以公开的其他较低级别的详细信息。

适用性

当您需要对对象层次结构使用不同的访问级别时,请使用此模式。 访问级别的层次结构清晰地定义为下一个级别,该级别具有上一级别的所有特权加上它自己的某些特权。

结构体

通常,可能会有更复杂的模型,但是在此专用版本中,我们将使用以下访问级别:读取,写入,类。 我们还假设每个下一个级别都具有上一级别的所有方法以及该级别特定的方法。 结构中的所有对象都必须具有以下常规类型层次结构:

多级适配器

如果需要读访问权限,则返回ReadInterface;如果需要写访问权限,则返回WriteInterface。 课程不是公开的。 类访问意味着类内可能存在仅在类或包中使用的特定操作。

但这并不是全部。 我们分为2层:文件夹和对象。 确保非常重要的一点是,如果外部实体对某个文件夹具有读取访问权限,则它必须对该文件夹中的对象具有读取访问权限。 读取接口的方法(如getObject(<parameters>)必须返回对象的读取接口:

public IReadObject getObject(<parameters>) {

...

}

根据此原理,写接口的方法必须返回对象的写接口:

public IWriteObject getObjectFull(<parameters>) {

...

}

这是文件夹的结构:

多级适配器

可以使用相同的原理添加更多的层-对层的读取访问权限意味着对所有较低层的读取访问权限,对层的写入访问权限意味着对较低的层的写入访问权限等等。在层次结构中具有相同级别的访问权限。

就像为每个访问级别为实现类创建适配器一样。

参加者

文件夹 –包含对象

对象 –可以访问的元素
ReadInterface –任何层的接口,表示对该层对象的读取访问
WriteInterface –任何层的接口,表示对该层对象的写访问 实现类 –此层元素的类

后果

  1. 对文件夹和对象的访问级别一致 。 通常,它可能更细粒度,如此处的读取访问和此处的写入访问。 但是在大多数情况下,对层次结构中某些对象的读取访问权限意味着对以下对象的读取访问权限。
  2. 清晰定义的接口,适用于所有访问级别,具有良好的封装性。

翻译自: https://www.javacodegeeks.com/2018/11/multilevel-adapter-pattern.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值