在Java中实现基于策略模式的问题案例

原创 缺乏、安全感 2024-11-22 21:57 94阅读 0赞

问题案例:假设我们有一个银行系统,其中包含两种类型的账户:储蓄账户和投资账户。每个账户的行为可能有所不同,比如储蓄账户只允许存款,不允许取款;而投资账户则可能会有股息或卖出收益。

根据以上场景,我们可以使用策略模式来实现不同的账户行为。

以下是Java代码实现:

  1. // 投资策略接口
  2. interface InvestmentStrategy {
  3. double calculateReturn(double initialAmount);
  4. }
  5. // 储蓄策略实现类
  6. class SavingsStrategy implements InvestmentStrategy {
  7. @Override
  8. public double calculateReturn(double initialAmount) {
  9. return initialAmount;
  10. }
  11. }
  12. // 投资账户抽象类
  13. abstract class BankAccount {
  14. private InvestmentStrategy strategy;
  15. // 设置投资策略
  16. public void setInvestmentStrategy(InvestmentStrategy strategy) {
  17. this.strategy = strategy;
  18. }
  19. // 计算并返回账户的回报率
  20. public double calculateReturn(double initialAmount) {
  21. return strategy.calculateReturn(initialAmount);
  22. }
  23. }
  24. // 使用场景
  25. class Main {
  26. public static void main(String[] args) {
  27. // 创建储蓄策略并应用到账户上
  28. SavingsStrategy savingsStrategy = new SavingsStrategy();
  29. BankAccount bankAccount = new BankAccount();
  30. bankAccount.setInvestmentStrategy(savingsStrategy);
  31. // 设置初始金额
  32. double initialAmount = 1000;
  33. // 计算并打印回报率
  34. double returnRate = bankAccount.calculateReturn(initialAmount);
  35. System.out.println("返回率: " + returnRate);
  36. }
  37. }

以上代码中,我们创建了一个BankAccount抽象类,其中包含一个投资策略字段。然后我们实现了一个SavingsStrategy的储蓄策略,并将其应用到一个银行账户上。

最后在main方法中,我们设置了一定的初始金额,并计算了其经过一段时间后的回报率。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,94人围观)

还没有评论,来说两句吧...

相关阅读