public abstract class PaymentProcessor {
// 抽象方法声明
public abstract boolean processPayment(double amount);
public abstract boolean refundPayment(String transactionId);
// 普通方法
public void validateAmount(double amount) {
if (amount <= 0) {
throw new IllegalArgumentException("金额必须大于0");
}
}
}
public abstract class AbstractController {
// 框架控制的请求处理流程
public final ModelAndView handleRequest(HttpServletRequest request) {
preProcess(request); // 前置处理
Object result = processBusinessLogic(request); // 抽象方法,业务逻辑由子类实现
return postProcess(result); // 后置处理
}
// 抽象方法:每个控制器有自己的业务逻辑
protected abstract Object processBusinessLogic(HttpServletRequest request);
}
// 包含抽象方法的类必须是抽象类 public abstract class Vehicle {
// 具体方法:所有交通工具共有的行为
public void startEngine() {
System.out.println("引擎启动");
}
// 抽象方法:不同交通工具移动方式不同
public abstract void move();
// 具体方法:所有交通工具共有的行为
public void stopEngine() {
System.out.println("引擎关闭");
}
}
// Java 8之前的接口:纯粹的抽象方法集合 public interface PaymentService {
// 所有方法默认都是public abstract
boolean validatePayment(PaymentInfo info);
PaymentResult processPayment(PaymentInfo info);
void refundPayment(String transactionId);
}
// 不推荐:参数过多,职责模糊 public abstract void processData(String input, String output,
boolean enableLogging, int timeout,
DataFormat format);
// 推荐:职责单一,参数清晰 public abstract ProcessedResult processData(ProcessRequest request);
你可能想看: