1、先说抽象类
抽象类是一种魔化代码的神器,纵观大佬们写的代码,对它的运用可谓是出神入化,令人佩服无比。
为啥说其是魔化神器?
个人感觉,抽象类如果可以好好运用,可以使你的代码看上去入魔入幻,不易理解,但是又能优雅的避免重复代码,实现上下层代码相容,让你的方法逻辑存在于无形之中,堪称牛X。
2、啥是模板方法?
含义:就是把实现某流程的节点方法做抽取,抽取到一个抽象类中,并定义流程入口方法,且定位为final,不可继承,不可修改。然后对于不同的流程细节,分布在子类自行实现。
好处:可以实现算法隐藏,满足开闭原则,可以扩展自定义实现细节流程,但是主流程不能修改;
3、举例
数据集成流程
1、抽象类AbstractIntegrate
/**
* 数据集成模板方法
*/
public abstract class AbstractIntegrate {
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
protected String integrateType;
protected void log(String msg) {
logger.info(integrateType + ":" + msg);
}
protected void log(String msg, Exception ex) {
logger.error(int