关于实现sdk的总结。
一. sdk
最近面临一个实现java-sdk的需求,目的是方便第三方调用我们实现的函数定义。
在此记录实现sdk的设计思路以及相关借鉴。
二. 设计思路
首先我们有一个功能A,需要封装一个函数以及提供规则入参,让使用方能够准确调用。
调用该函数的前提是需要配置相关前置参数,具体的封装细节无需关注过多,对使用方来说只关注入参和出参。
于是我们使用@ConfigurationProperties进行参数注册:
@ConfigurationProperties(prefix = "test")
public class TestConfig {
private String name;
private String code;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}
使用方只需要根据配置文件前缀,例如上面的test来注入配置属性:
test
name: testName
code: testCode
而在后续的功能封装函数服务中,需要用到该配置项,于是我们可以使用@EnableConfigurationProperties(value = {TestConfig.class})来进行管理:
@Slf4j
@Service
@EnableConfigurationProperties(value = {ISAPConfig.class})
public class TestService {
@Autowired
private TestConfig testConfig;
public String send(){
String name = testConfig.getName();
String code = testConfig.getCode();
// TODO something...
return "send success";
}
}
三. 总结
封装SDK的思路就需要站在使用者的角度去考虑问题,尽量封装具体细节,只关注调用方式和结果。