在Java中实现基于策略模式的问题案例
问题案例:假设我们有一个银行系统,其中包含两种类型的账户:储蓄账户和投资账户。每个账户的行为可能有所不同,比如储蓄账户只允许存款,不允许取款;而投资账户则可能会有股息或卖出收益。
根据以上场景,我们可以使用策略模式来实现不同的账户行为。
以下是Java代码实现:
// 投资策略接口
interface InvestmentStrategy {
double calculateReturn(double initialAmount);
}
// 储蓄策略实现类
class SavingsStrategy implements InvestmentStrategy {
@Override
public double calculateReturn(double initialAmount) {
return initialAmount;
}
}
// 投资账户抽象类
abstract class BankAccount {
private InvestmentStrategy strategy;
// 设置投资策略
public void setInvestmentStrategy(InvestmentStrategy strategy) {
this.strategy = strategy;
}
// 计算并返回账户的回报率
public double calculateReturn(double initialAmount) {
return strategy.calculateReturn(initialAmount);
}
}
// 使用场景
class Main {
public static void main(String[] args) {
// 创建储蓄策略并应用到账户上
SavingsStrategy savingsStrategy = new SavingsStrategy();
BankAccount bankAccount = new BankAccount();
bankAccount.setInvestmentStrategy(savingsStrategy);
// 设置初始金额
double initialAmount = 1000;
// 计算并打印回报率
double returnRate = bankAccount.calculateReturn(initialAmount);
System.out.println("返回率: " + returnRate);
}
}
以上代码中,我们创建了一个BankAccount
抽象类,其中包含一个投资策略字段。然后我们实现了一个SavingsStrategy
的储蓄策略,并将其应用到一个银行账户上。
最后在main
方法中,我们设置了一定的初始金额,并计算了其经过一段时间后的回报率。
还没有评论,来说两句吧...