工作中,掘金者说偶尔会进行对接第三方平台接口(掘金者说品味过: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 {
/**
* 支付参数类
*/
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/