在软件开发中,Java策略模式是一种非常实用且常见的设计模式。它属于行为型设计模式,能够让你在运行时动态地改变对象的行为。本教程将用通俗易懂的方式带你一步步理解并实现策略模式,即使是编程小白也能轻松上手!
策略模式(Strategy Pattern)定义了一系列算法,并将每个算法封装起来,使它们可以互换。策略模式让算法的变化独立于使用它的客户端。
举个生活中的例子:你去餐厅点餐,可以选择不同的支付方式——现金、信用卡、支付宝等。每种支付方式就是一种“策略”,而你作为顾客(客户端)并不关心具体怎么支付,只调用“支付”这个动作即可。

假设我们要对一组数字进行排序,但希望在运行时选择不同的排序算法,比如冒泡排序或快速排序。
public interface SortingStrategy { void sort(int[] array);}冒泡排序策略:
public class BubbleSortStrategy implements SortingStrategy { @Override public void sort(int[] array) { System.out.println("使用冒泡排序..."); // 简化版冒泡排序 for (int i = 0; i < array.length - 1; i++) { for (int j = 0; j < array.length - 1 - i; j++) { if (array[j] > array[j + 1]) { int temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } } }}快速排序策略:
public class QuickSortStrategy implements SortingStrategy { @Override public void sort(int[] array) { System.out.println("使用快速排序..."); quickSort(array, 0, array.length - 1); } private void quickSort(int[] arr, int low, int high) { if (low < high) { int pi = partition(arr, low, high); quickSort(arr, low, pi - 1); quickSort(arr, pi + 1, high); } } private int partition(int[] arr, int low, int high) { int pivot = arr[high]; int i = (low - 1); for (int j = low; j < high; j++) { if (arr[j] <= pivot) { i++; int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } int temp = arr[i + 1]; arr[i + 1] = arr[high]; arr[high] = temp; return i + 1; }}public class Sorter { private SortingStrategy strategy; // 构造函数注入策略 public Sorter(SortingStrategy strategy) { this.strategy = strategy; } // 动态设置策略 public void setStrategy(SortingStrategy strategy) { this.strategy = strategy; } // 执行排序 public void performSort(int[] array) { strategy.sort(array); }}public class Main { public static void main(String[] args) { int[] numbers = {5, 2, 9, 1, 5, 6}; // 使用冒泡排序 Sorter sorter = new Sorter(new BubbleSortStrategy()); sorter.performSort(numbers.clone()); // clone 避免原数组被修改 // 切换为快速排序 sorter.setStrategy(new QuickSortStrategy()); sorter.performSort(numbers.clone()); }}运行结果会输出:
使用冒泡排序...使用快速排序...
通过本教程,你已经掌握了Java策略模式的基本原理和实现方法。策略模式是设计模式Java体系中非常重要的一环,适用于需要在运行时动态选择算法的场景。无论是支付方式、排序算法还是折扣计算,策略模式都能让你的代码更灵活、更优雅。
记住:好的设计不是一开始就复杂的,而是随着需求演进而逐步优化的。现在,你可以尝试在自己的项目中应用策略模式实现,体验它带来的便利!
如果你觉得这篇策略模式教程对你有帮助,欢迎分享给更多正在学习Java的朋友!
本文由主机测评网于2025-12-17发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025129053.html