通过封装相同的代码,给外部提供一个接口,外部通过实现这个接口,写不同的业务逻辑
abstract class Test{
//业务逻辑代码
public void test3(){
//一下代码都是重复的
int a = 1;
if(true){
System.out.println("相同代码");
}
if (true){
System.out.println("相同代码");
}
//核心的代码
if (true){
print(a);
}
}
public abstract void print(int a);
}
public class UserDao extends Test{
public static void main(String[] args) {
UserDao userDao = new UserDao();
userDao.test3();
}
public void print(int a) { //实现接口(重写)
System.out.println("业务逻辑代码");
System.out.println(a);
}
}
或者使用传递一个类,调用类中特定的方法(本质上调用方法)
abstract class Test{
//业务逻辑代码
public void test3(Function function){
//一下代码都是重复的
int a = 1;
if(true){
System.out.println("相同代码");
}
if (true){
System.out.println("相同代码");
}
//核心的代码
if (true){
function.print(a);
}
}
}
public class UserDao extends Test{
public static void main(String[] args) {
UserDao userDao = new UserDao();
userDao.test3(new Function());
}
}
class Function{
public void print(int a){
System.out.println(a);
}
}