工作中,掘金者说偶尔会进行对接第三方平台接口(掘金者说品味过:POS机对接、缴费接口对接、电子票据对接、打印机接口对接、门禁卡接口对接、交通罚没接口对接、电子证照接口对接...),接二连三的对接难免造成资源浪费,一个百度、谷歌或写个请求调用是很简单的事情,如果把简单的事情,再总结下那就更加完美。当这种对接能否进行「抽象概念」或者「模板虚化」进行处理呢?希望我们的工作上「代码循环利用,节约时间在更有创造性的工作上」。还记得:掘金者说上网查问题解决的时候,查到本人在CSDN上面写的文章,后来不由的开心笑了。根据遗忘曲线,还是要不断的练习并总结。
我们输入的信息在经过人的注意过程的学习后,便成为了人的短时的记忆,但是如果不经过及时的复习,这些记住过的东西就会遗忘,而经过了及时的复习,这些短时的记忆就会成为了人的一种长时的记忆,从而在大脑中保持着很长的时间。
最近,掘金者说对接了一个票据第三方打印机,关于【易联云云打印】开发文档为例子,把这个方式进行掘金笔记分享参考做下笔记。尽可能的实现“「重复利用」”。大致的浏览了文档,需要根据开发文档进行注册一个账号,然后添加个APP就可以获取他的相关数据了。大概笔记,仅供参考!
抽象思路
创建一个工程pig-print
,文件夹com.pig4cloud.yilianyun.helper
抽象打印请求类AbstractPrintRequest
package com.pig4cloud.yilianyun.helper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/** * 抽象打印请求 * * @author Lucky * @date 2020-06-29 */ public abstract class AbstractPrintRequest { /** * 日志类 */ private static Logger logger = LoggerFactory.getLogger(AbstractPrintRequest.class); /** * 支付参数类 */ static PrintConfig config; /** * 获取业务参数 * * @return 业务参数JSON字符串格式 **/ abstract String getBusinessParam(); /** * 获取执行方法 * * @return 执行方法名称 **/ abstract String getMethod(); /** * 发送http请求 */ public String doApi() { // ...处理忽略 return sendHttpRsp(allParam); } /** * TODO 构建签名 * * @return 签名字符串 **/ String buildSign(String timestamp) { // ...处理忽略 } /** * TODO 发送post请求 * * @param params 业务参数 * @return **/ private static String sendHttpRsp(Map<String, Object> params) { // ...处理忽略 } } 复制代码
添加PrintConfig
配置类
package com.pig4cloud.yilianyun.helper;
import lombok.Getter;
import org.springframework.context.annotation.Configuration;
/** * 打印配置 * * @author Lucky * @date 2020-06-29 */ @Configuration @Getter public class PrintConfig { /** * 打印方法(参考) */ @Value("${print.yilianyun.method}") private String printMethod; } 复制代码
添加PrintRequest
类
package com.pig4cloud.yilianyun.helper;
/**
* 打印请求
* * @author Lucky * @date 2020-06-29 */ public class PrintRequest extends AbstractPrintRequest { private String content; @Override String getBusinessParam() { } @Override String getMethod() { return config.getPrintMethod(); } public static Builder builder(PrintConfig config) { AbstractPrintRequest.config = config; return new Builder(); } public static class Builder { private PrintRequest printRequest; public Builder() { this.printRequest = new PrintRequest(); } public Builder content(String content) { printRequest.content = content; return this; } public PrintRequest builder() { return this.printRequest; } } } 复制代码
添加PrintRequestFactory
类
package com.pig4cloud.yilianyun.helper;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/** * 打印请求工厂 * * @author Lucky * @date 2020-06-29 */ @Component public class PrintRequestFactory { /** * 参数配置类 */ @Resource private PrintConfig config; /** * printRequest工厂类 */ public PrintRequest.Builder printRequestBuilder() { return PrintRequest.builder(config); } } 复制代码
单元测试
/**
* 打印请求工厂
*
* @author Lucky * @date 2020-06-29 */ @SpringBootTest(classes = {PrintApplication.class}) @RunWith(SpringRunner.class) public class TestPrintRequest { @Resource private PrintRequestFactory factory; @Test public void testPrint() { String content = "pig4cloud.com"; String msg = factory.printRequestBuilder().content(content).builder().doApi() System.out.println(msg); } } 复制代码
艾宾浩斯的实验向我们充分证实了一个道理:「学习要勤于复习,而且记忆的理解效果越好,遗忘的也越慢,对所学知识和记忆效果及时进行复习和自测是有效的记忆方法」。道理都是那个意思,我们要「知行合一」说的容易,做起来就难了。
传送:
易联云云打印:doc2.10ss.net/331994
pig for cloud 官网:pig4cloud.com/