设计模式应用三:策略模式

  1. 、商场打折 -策略可以简单分为: 原价购买、满减、返利三种策略:
  2. 、系统的操作都要有日志记录,通常会把日志记录在数据库里面,方便后续的管理,但是在记录日志到数据库的时候,可能会发生错误,比如暂时连不上数据库了,那就先记录在文件里面。日志写到数据库与文件中是两种算法,但调用方不关心,只负责写就是
  3. 、根据状态进行相应的退货处理。
  4. 、产品的搜索方法能够使用多种算法对结果进行排序
  5. 、在公司周年庆的时候,所有的客户额外增加3%的折扣;在换季促销的时候,普通客户是额外增加折扣2%,老客户是额外增加折扣3%,大客户是额外增加折扣5%。这意味着计算报价的方式会经常被修改,或者被切换。通常情况下应该是被切换,因为过了促销时间,又还回到正常的价格体系上来了。

代码:

public class Client {

public static void main(String[] args) {

List list = new ArrayList();

SortStrategy sortStrategy = new QuickSorter(list);

CatalogSearchEngine e = new CatalogSearchEngine(sortStrategy);

e.search();

}

}

public class CatalogSearchEngine {

private SortStrategy sortStrategy;

 

public CatalogSearchEngine(SortStrategy ss){

sortStrategy = ss;

}

public List search(){

 

return sortStrategy.sort();

}

}

public interface SortStrategy {

public List sort();

}

public class QuickSorter implements SortStrategy {

private List list;

 

public QuickSorter(List l){

list = l;

}

public List sort() {

// 执行对应的排序算法

return null;

}

}

你可能感兴趣的:(设计模式应用三:策略模式)