当前位置: 首页 > news >正文

找人做网站被骗 公安不管拓客app下载

找人做网站被骗 公安不管,拓客app下载,重庆网站建设公司推荐,关键词排名优化网站建设公司哪家好一、概述 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 二、适用性 1.你想使用一个已经存在的类,而它的接口不符合你的需求。 2.你想创建一个可以复用的类,该类可以与其他不…

一、概述

将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

二、适用性

1.你想使用一个已经存在的类,而它的接口不符合你的需求。

2.你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口 可能不一定兼容的类)协同工作。

3.(仅适用于对象Adapter)你想使用一些已经存在的子类,但是不可能对每一个都进行 子类化以匹配它们的接口。对象适配器可以适配它的父类接口。

三、参与者

1.Target 定义Client使用的与特定领域相关的接口。

2.Client 与符合Target接口的对象协同。

3.Adaptee 定义一个已经存在的接口,这个接口需要适配。

4.Adapter 对Adaptee的接口与Target接口进行适配

四、类图

五、示例

Target接口

public interface Target {void adapteeMethod();void adapterMethod();
}

 Adaptee类

public class Adaptee {public void adapteeMethod() {System.out.println("Adaptee method!");}
}

适配器类Adapter

public class Adapter implements Target {private Adaptee adaptee;public Adapter(Adaptee adaptee){this.adaptee = adaptee;}@Overridepublic void adapteeMethod() {adaptee.adapteeMethod();}@Overridepublic void adapterMethod() {System.out.println("Adapter method!");}
}

测试类

public class TestAdapter {@Testpublic void ruleTest() {Target target = new Adapter(new Adaptee());target.adapteeMethod();target.adapterMethod();}
}

测试结果

Connected to the target VM, address: '127.0.0.1:3881', transport: 'socket'
Adaptee method!
Adapter method!
Disconnected from the target VM, address: '127.0.0.1:3881', transport: 'socket'

 六、实践

文件中心服务开发。

文件操作适配相关总体目录

自研文件服务相关

/*** @author* @createTime 2021年01月15日* @Description 自研文件服务接口*/
public interface IFileOperateService {/*** 上传文件* @param dto 参数* @return 文件id*/String upload(FileUploadDto dto);/*** 流式上传文件* @param streamDto 参数* @return 文件id*/String upload4Stream(FileUploadForStreamDto streamDto);/*** 下载文件* @param fileId 文件id* @return 结果*/FileDownloadDto download(String fileId);/*** 流式下载文件* @param fileId 文件id* @return 结果*/FileDownloadForStreamDto download4Stream(String fileId);
}

 实现

/*** @author* @createTime 2021年01月15日* @Description 自研文件服务实现*/
public class CustomFileOperateServiceImpl implements IFileOperateService {@Overridepublic String upload(FileUploadDto dto) {System.out.println("自研文件服务上传文件...");return null;}@Overridepublic String upload4Stream(FileUploadForStreamDto streamDto) {System.out.println("自研文件服务流式上传文件...");return null;}@Overridepublic FileDownloadDto download(String fileId) {System.out.println("自研文件服务下载文件...");return null;}@Overridepublic FileDownloadForStreamDto download4Stream(String fileId) {System.out.println("自研文件服务流式下载文件...");return null;}
}

第三方文件相关

/*** @author* @createTime 2021年01月15日* @Description 第三方文件服务接口*/
public interface IThirdPartyFileOperateService {/*** 上传文件* @param dto 参数* @return 文件id*/String upload(FileUploadDto dto);/*** 流式上传文件* @param streamDto 参数* @return 文件id*/String upload4Stream(FileUploadForStreamDto streamDto);/*** 下载文件* @param fileId 文件id* @return 结果*/FileDownloadDto download(String fileId);/*** 流式下载文件* @param fileId 文件id* @return 结果*/FileDownloadForStreamDto download4Stream(String fileId);
}

实现

/*** @author* @createTime 2021年01月15日* @Description 阿里oss服务*/
public class AliOssFileOperateServiceImpl implements IThirdPartyFileOperateService {@Overridepublic String upload(FileUploadDto dto) {System.out.println("oss文件服务上传文件...");return null;}@Overridepublic String upload4Stream(FileUploadForStreamDto streamDto) {System.out.println("oss文件服务流式上传文件...");return null;}@Overridepublic FileDownloadDto download(String fileId) {System.out.println("oss文件服务下载文件...");return null;}@Overridepublic FileDownloadForStreamDto download4Stream(String fileId) {System.out.println("oss文件服务流式下载文件...");return null;}
}

声明一个统一的适配标准

/*** @author * @createTime 2021年01月15日* @Description*/
public interface FileOperateAdaptee extends IThirdPartyFileOperateService {
}

适配器-CustomFileOperateAdaptor

/*** @author * @createTime 2021年01月15日* @Description*/
public class CustomFileOperateAdaptor implements FileOperateAdaptee {private final IFileOperateService customFileOperationService;public CustomFileOperateAdaptor(IFileOperateService customFileOperationService) {this.customFileOperationService = customFileOperationService;}@Overridepublic String upload(FileUploadDto dto) {return customFileOperationService.upload(dto);}@Overridepublic String upload4Stream(FileUploadForStreamDto streamDto) {return customFileOperationService.upload4Stream(streamDto);}@Overridepublic FileDownloadDto download(String fileId) {return customFileOperationService.download(fileId);}@Overridepublic FileDownloadForStreamDto download4Stream(String fileId) {return customFileOperationService.download4Stream(fileId);}
}

适配器-MultiWriteAndReadCustomOperateAdaptor

/*** @author* @createTime 2021年01月15日* @Description 上传时多写,读取时优先从自研文件服务中读取的适配器*/
public class MultiWriteAndReadCustomOperateAdaptor extends AbstractFileMultiWriteOperateAdaptor {public MultiWriteAndReadCustomOperateAdaptor(IFileOperateService fileOperationService, IThirdPartyFileOperateService thirdPartyFileOperationService) {super(fileOperationService, thirdPartyFileOperationService);}@Overridepublic String upload(FileUploadDto dto) {System.out.println("MultiWriteAndRead文件服务上传文件...");return null;}@Overridepublic String upload4Stream(FileUploadForStreamDto streamDto) {System.out.println("MultiWriteAndRead文件服务流式上传文件...");return null;}@Overridepublic FileDownloadDto download(String fileId) {System.out.println("MultiWriteAndRead文件服务下载文件...");return null;}@Overridepublic FileDownloadForStreamDto download4Stream(String fileId) {System.out.println("MultiWriteAndRead文件服务流式下载文件...");return null;}
}

文件服务工厂-FileOperateFactory

/*** @author* @createTime 2021年01月15日* @Description 文件服务工厂*/
public class FileOperateFactory {public static IThirdPartyFileOperateService getDefault() {return getInstance(EnumFileOperateType.MULTI_WRITE_AND_READ_FROM_CUSTOM);}/*** 获取对应的文件服务实例* @param operationType 类型* @return 实例*/public static IThirdPartyFileOperateService getInstance(EnumFileOperateType operationType) {switch (operationType) {case OSS:return new AliOssFileOperateServiceImpl();case CUSTOM:return  new CustomFileOperateAdaptor(new CustomFileOperateServiceImpl());case MULTI_WRITE_AND_READ_FROM_CUSTOM:return  new MultiWriteAndReadCustomOperateAdaptor(new CustomFileOperateServiceImpl(),new AliOssFileOperateServiceImpl());default:throw new IllegalArgumentException("storageType is not support");}}
}

自测

@Test
public void fileTest() {IThirdPartyFileOperateService operateService =            FileOperateFactory.getInstance(EnumFileOperateType.MULTI_WRITE_AND_READ_FROM_CUSTOM);operateService.upload(new FileUploadDto());operateService.download("this is fileId");
}

自测结果

Connected to the target VM, address: '127.0.0.1:6502', transport: 'socket'
MultiWriteAndRead文件服务上传文件...
MultiWriteAndRead文件服务下载文件...
Disconnected from the target VM, address: '127.0.0.1:6502', transport: 'socket'

http://www.hengruixuexiao.com/news/41222.html

相关文章:

  • 西安网站托管公司招聘抖音seo搜索引擎优化
  • dw旅游网站模板每日财经最新消息
  • 没备案网站如何通过百度联盟审核谷歌浏览器免费入口
  • 郑州微信网站建设百度seo网站优化
  • wordpress不加载样式seo搜索优化公司
  • 手表网站排行榜网上代写文章一般多少钱
  • 网站建设的具体过程宁波如何做seo排名优化
  • wordpress 页面挂件信息流广告优化
  • 新建网站怎么优化最佳的资源磁力搜索引擎
  • 网站seo优化免费免费网站推广软文发布
  • 网站关键词优化+徽信bdxlci可上词可教技术自己做网站需要什么条件
  • 网站的弹窗是用什么软件做的西地那非片的功效与作用
  • 新疆企业电子网站建设网络工具
  • 普斯泰网站建设114啦网址导航官网
  • 怎么样在百度搜到自己的网站企业网络推广的方式有哪些
  • dwcs5怎么做动态网站后台徐州seo招聘
  • 公司做宣传网站2019年 2022疫情爆发
  • 2019年 dede网站广告推销
  • 坪洲网站建设营销软件商城
  • 做网站的人会不会拿走我的网站佛山网站建设公司哪家好
  • 做外贸哪个网站比较好小视频关键词汇总
  • 注册一个网站石家庄关键词排名提升
  • 免费网站建站方法百度网站推广排名优化
  • 网站升级改造建设方案设计培训班学费一般多少
  • 玛卡h5制作官网简述网站内容如何优化
  • 专做教育网站拿站青岛seo用户体验
  • Wordpress翻译文章杭州网站seo价格
  • 做自己的彩票网站怎么收录网站
  • 网站建设方案范文1000字如何免费推广自己的产品
  • 顶尖的赣州网站建设b2b关键词排名工具