策略模式~

策略模式是一种行为设计模式,用于封装一系列算法,并使它们可以相互替换。本文详细介绍了策略模式的概念、优缺点、使用场景和注意事项,特别强调了其在Java集合排序中的应用,通过Comparator接口实现动态排序策略。此外,还探讨了如何在资源管理中利用策略模式实现不同资源获取策略。
摘要由CSDN通过智能技术生成

1. 策略模式

1.1 介绍

策略模式是对象的行为模式,用意是对一组算法的封装。动态的选择需要的算法并使用。

策略模式指的是程序中涉及决策控制的一种模式。策略模式功能非常强大,因为这个设计模式本身的核心思想就是面向对象编程的多形性思想。

策略模式的三个角色:抽象策略角色、具体策略角色、环境角色(对抽象策略角色的引用)

实现步骤:

1.定义抽象角色类(定义好各个实现的共同抽象方法)

2.定义具体策略类(具体实现父类的共同方法)

3.定义环境角色类(私有化申明抽象角色变量,重载构造方法,执行抽象方法)

1.2 优缺点

优点

  • 策略模式提供了管理相关的算法族的办法。策略类的等级结构定义了一个算法或行为族。可通过继承或接口实现代码复用
  • 策略模式提供了可以替换继承关系的办法
  • 使用策略模式可以避免使用多重条件转移语句。

缺点

  • 客户端必须知道所有的策略类,并自行决定使用哪一个策略类。
  • 策略模式造成很多的策略类,每个具体策略类都会产生一个新类。

1.3 使用场景

  • 如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使用策略模式可以动态地让一个对象在许多行为中选择一种行为
  • 一个系统需要动态地在几种算法中选择一种
  • 如果一个对象有很多的行为,如果不用恰当的模式,这些行为就只好使用多重的条件选择语句来实现。

1.4 注意事项

如果一个系统的策略多于四个,就需要考虑使用混合模式,解决策略类膨胀的问题。

2. 案例实现

第三个问题是给我们两个数,让我们使用最少次加减乘除后将一个数变成另一个数,记录变化的过程。**遗憾的是,我们没有做出来这道题,因此与宝藏无缘了。**但作为答对前两题的奖励,我们获得了一个金属箱子,里面可能有宝物。

public interface Operation {
   
    int doOperation(int num1, int num2);
}
public class Add implements Operation {
   
    @Override
    public int doOperation(int num1, int num2) {
   
        System.out.println("add: " + num1 + "+" <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值