一、策略模式简介
策略模式的结构图如下所示:
二、Java语言描述
用策略模式实现各种排序算法的调用:
package com.solid.pattern;
/**
* 策略模式
* @author solid
*/
public class Strategy {
private StrategyInter strategy;
public Strategy(StrategyInter strategy) {
this.strategy = strategy;
}
public void sort() {
strategy.sort();
}
}
package com.solid.pattern;
/**
* 策略模式(策略接口)
* @author solid
*/
public abstract class StrategyInter {
public abstract void sort();
}
package com.solid.pattern;
/**
* 策略模式(具体策略类)
* @author solid
*/
public class BuddleSort extends StrategyInter {
public void sort() {
//BuddleSort code
System.out.println("===BuddleSort===");
}
}
package com.solid.pattern;
/**
* 策略模式(具体策略类)
* @author solid
*/
public class InsertSort extends StrategyInter {
public void sort() {
//InsertSort code
System.out.println("===InsertSort===");
}
}
package com.solid.pattern;
/**
* 策略模式(具体策略类)
* @author solid
*/
public class QuickSort extends StrategyInter {
public void sort() {
//QuickSort code
System.out.println("===QuickSort===");
}
}
package com.solid.pattern;
/**
* 策略模式(具体策略类)
* @author solid
*/
public class SelectSort extends StrategyInter {
public void sort() {
//SelectSort code
System.out.println("===SelectSort===");
}
}