钩子的实现方法
是对于抽象方法或者接口中定义的方法的一个空实现,在实际中的应用,比如说有一个接口,这个接口里有7个方法,而你只想用其中一个方法,那么这时,你可以写一个抽象类实现这个接口,在这个抽象类里将你要用的那个方法设置为abstract,其它方法进行空实现,然后你再继承这个抽象类,就不需要实现其它不用的方法,这就是钩子方法的作用。
接口
/*
* Copyright (C), 2013-2019, 天津大海云科技有限公司
*/
package com.jikang.service;
/**
*
* 钩子方法测试接口
*
* @author yangjikang
* @date 2019/8/27 14:56
* @modified By yangjikang
* @since
*/
public interface TestHookService {
boolean mothod01();
boolean mothod02();
boolean mothod03();
boolean mothod04();
boolean mothod05();
boolean mothod06();
}
抽象父类
/*
* Copyright (C), 2013-2019, 天津大海云科技有限公司
*/
package com.jikang.service.impl;
import com.jikang.service.TestHookService;
/**
* @author yangjikang
* @date 2019/8/27 14:59
* @modified By yangjikang
* @since
*/
public abstract class TestAbstractHookServiceImpl implements TestHookService {
@Override
public abstract boolean mothod01();
@Override
public boolean mothod02() {
return false;
}
@Override
public boolean mothod03() {
return false;
}
@Override
public boolean mothod04() {
return false;
}
@Override
public boolean mothod05() {
return false;
}
@Override
public boolean mothod06() {
return false;
}
public final void operating() {
if(mothod01()) {
System.out.println("钩子方法开启");
}else {
System.out.println("钩子方法关闭");
}
}
}
实现类
/*
* Copyright (C), 2013-2019, 天津大海云科技有限公司
*/
package com.jikang.service.impl;
/**
* @author yangjikang
* @date 2019/8/27 15:04
* @modified By yangjikang
* @since
*/
public class TestAchieveHookServiceImpl extends TestAbstractHookServiceImpl{
@Override
public boolean mothod01() {
return true;
}
public static void main(String[] args) {
TestAchieveHookServiceImpl ah = new TestAchieveHookServiceImpl();
ah.operating();
}
}