模式适配器客户端设计下载app(适配器模式接口平板客户端)「适配器模式原则」

前言下载一个APP,核心功能是相同的,但是有多个不同的端(Adapter),每个端都可以正常使用核心功能。
这个场景就十分贴近23种设计模式中的适配器模式了,每个客户端都是一个适配器,以将相同的内容,展示到不同的设备上。
模式定义Convert the interface of a class into another interface clients expect. Adapter lets classes work together that couldn't otherwise because of incompatible interfaces.将类的接口转换为客户端期望的另一个接口。
适配器允许类一起工作,否则由于接口不兼容而无法工作模式结构模式实现1.1原始内容接口定义这里为简单,只定义了一个没有出入参的方法package com.example.designpattern.adapter.origin;/ app核心功能 @author hongcunlin /public interface App { / 显示 / void show();}1.2.原始内容实现package com.example.designpattern.adapter.origin.impl;import com.example.designpattern.adapter.origin.App;import org.springframework.stereotype.Service;/ @author hongcunlin /@Servicepublic class AppImpl implements App { @Override public void show() { System.out.println("显示"); }}2.1平板设计适配器接口定义第一个适配器package com.example.designpattern.adapter.target;/ 平板适配器 @author hongcunlin /public interface PadAdapter { / 显示 / void show();}2.2.平板设备适配器接口实现package com.example.designpattern.adapter.target.impl;import com.example.designpattern.adapter.origin.App;import com.example.designpattern.adapter.target.PadAdapter;import org.springframework.stereotype.Service;import javax.annotation.Resource;/ 平板适配器实现 @author hongcunlin /@Servicepublic class PadAdapterImpl implements PadAdapter { / 原始功能 / @Resource private App app; @Override public void show() { System.out.println("调整尺寸为当前平板的12.9寸"); app.show(); }}3.1.手机设备适配器接口定义第二个适配器package com.example.designpattern.adapter.target;/ 手机适配器 @author hongcunlin /public interface PhoneAdapter { / 显示 / void show();}3.2.手机设备适配器实现package com.example.designpattern.adapter.target.impl;import com.example.designpattern.adapter.origin.App;import com.example.designpattern.adapter.target.PhoneAdapter;import org.springframework.stereotype.Service;import javax.annotation.Resource;/ 手机适配器实现 @author hongcunlin /@Servicepublic class PhoneAdapterImpl implements PhoneAdapter { / app / @Resource private App app; @Override public void show() { System.out.println("调整尺寸为当前手机的6.7寸"); app.show(); }}4.测试测试经过适配器处理后的接口效果package com.example.designpattern.adapter;import com.example.designpattern.adapter.target.PadAdapter;import com.example.designpattern.adapter.target.PhoneAdapter;import org.junit.jupiter.api.Test;import org.springframework.boot.test.context.SpringBootTest;import javax.annotation.Resource;/ 适配器模式测试 @author hongcunlin /@SpringBootTestpublic class DesignPatternTest { / 平板 / @Resource private PadAdapter padAdapter; / 手机 / @Resource private PhoneAdapter phoneAdapter; @Test public void test() { // 手机 phoneAdapter.show(); // 平板 padAdapter.show(); }}可以看到,结果是符合预期的,增加了前置处理。
其他适配器模式在互联网业务开发中,还是十分常见的,特别是分布式微服务架构,每个微服务或多或少会引入其他服务的接口依赖,在使用这些外部接口时,通常会使用适配器模式封装适配(如参数转换、日志打印、监控埋点等等)之后,再调用。
有空再通过日常生活内容,闲聊其他设计模式。
模式适配器客户端设计下载app(适配器模式接口平板客户端)
(图片来源网络,侵删)

联系我们

在线咨询:点击这里给我发消息