策略模式

通过不同的路,到达相同的目的地,这就是策略模式。

使用不同的策略,完成最终相同的结果。

如:使用不同的优惠券,最总都是提交一份订单,只是付款金额不同。

例:对一个list,可以自定义不同的排序规则,进行排序:

1)测试类

package com.gupaoedu.vip.strategy;

import java.util.ArrayList;

import java.util.Collections;

import java.util.Comparator;

import java.util.List;

public class MyListTest {

public static void main(String[] args) {

//new MyList().sort(new NumberComparator());

//策略模式

// List numbers = new ArrayList();

//

// Collections.sort(numbers, new Comparator() {

//

// @Override

// //返回值是固定的

// //0 、-1 、1

// //0 、 >0 、<0

// public int compare(Long o1, Long o2) {

//

// //中间逻辑是不一样的

//

// return 0;

// }

//

//

// });

}

}

2)定义一个接口

package com.gupaoedu.vip.strategy;

public interface Comparator {

int compareTo(Object obj1,Object obj2);

}

3)自定义sort方法

package com.gupaoedu.vip.strategy;

public class MyList {

public void sort(Comparator com){

// com.compareTo(obj1, obj2);

System.out.println("执行逻辑");

}

}

4)自定义2种排序规则

package com.gupaoedu.vip.strategy;

public class NumberComparator implements Comparator{

@Override

public int compareTo(Object obj1, Object obj2) {

return 0;

}

}


package com.gupaoedu.vip.strategy;

public class ObjectComparator implements Comparator{

@Override

public int compareTo(Object obj1, Object obj2) {

return 0;

}

}

你可能感兴趣的:(策略模式)