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

营销网站建设都是专业技术人员吗网络营销的优势

营销网站建设都是专业技术人员吗,网络营销的优势,wwe中文官网站,中关村在线主页一、概述 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 二、适用性 1.你想使用一个已经存在的类#xff0c;而它的接口不符合你的需求。 2.你想创建一个可以复用的类#xff0c;该类可以与其他不…一、概述 将一个类的接口转换成客户希望的另外一个接口。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.dnsts.com.cn/news/90788.html

相关文章:

  • 怎样创建基本的网站菏泽 网站建设公司
  • 我做网站价格外贸网站建设是什么
  • 网站开发的前端后端域名购买 便宜的域名
  • 青岛公司网站设计wordpress 批量建站
  • 焦作网站设计建网站深圳
  • wap网站和app的区别看电视免费直播频道
  • 做电商网站必需知道qcwordpress没了
  • 绿色家园网站怎么做英文字体设计网站
  • 怎么做猫的静态网站福州+网站建设+医疗
  • 网站建设公司客户来源渠道网站备案 办公室电话
  • 网站建设心得体会总结介绍小说的网站模板
  • 冠县网站建设多少钱google网站优化器
  • 做纸巾定制的网站企业危机公关
  • 网站设计部的优化智能城市 电子商务网站建设
  • 网站建设与维护 实验报告心得大连市建设厅网站
  • cms做视频网站建设官网入口
  • aspx网站开发教程免费网站建设网站有那些
  • 短视频网站怎么建设织梦网站怎么重新安装教程
  • 请问番禺哪里有做网站的宁波网页网站制作
  • 网站备案核验单怎么选wordpress网站重做
  • 建立网站的线上教学网站
  • 中国万网注册网站国外源码网站
  • 如何选择网站建设案例宁波网站推广渠道
  • 网站建设编辑教程湛江网站制作建设
  • 百度最容易收录的网站商业网站建站目的
  • 南通网站开发价格查域名是否注册
  • wordpress建站后怎样发布有专门做ppt的网站
  • 设计网站一般要多少钱大网站如何优化
  • 网站推广软件下拉管家西城企业网站建设
  • 网站建设微站自助快速建站