首页 > 代码库 > 策略模式

策略模式

琢磨了一下策略模式,发现各个模式之间并非区别特别大,他们都是基于软件project一个大的基础上进行细微化区别的设计。要想熟练的选择和使用各个模式要了解每一个模式的应用场景。
比方这次学习的策略模式。在大话设计模式中举了一个商场促销几种方案的样例,假设以简单工厂模式切入写出的程序和策略模式答题不差。我在用简单工厂模式构想这个商场打折的问题时候相到的方法和策略模式无二。


所以这次主要是给出策略模式的理论知识和大话中的样例给大家思考。下面内容多出自《大话》。

策略模式将各个算法家族分别封装,这些算法处于并列状态,用户能够以同样的方式调用不同算法。

这句话算是策略模式的纲。
那么採用策略模式有什么优点呢?

1.使用策略模式实现并列的多个算法时。能够提取公共的部分,成为super类。
2.每一个算法有自己的实现类。能够通过独立的接口进行单元測试

我们把上面的规则提炼为:当project中须要在不同的场合使用不同的规则,这样的应用场景出现的时候,我们就能够来应用策略模式。
以上为策略模式的概念建议结合简单工厂模式进行实践和思考。
给出大话中的样例。參考上一篇简单工厂模式进行code。

商场搞活动时。会有一下几种打折方式:
1.满200减50
2.打八折
3.满100送10积分
4.满199送100现金券
code来实现不同一时候期採用不同促销策略计算收益。
<script type="text/javascript"> $(function () { $(‘pre.prettyprint code‘).each(function () { var lines = $(this).text().split(‘\n‘).length; var $numbering = $(‘
    ‘).addClass(‘pre-numbering‘).hide(); $(this).addClass(‘has-numbering‘).parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($(‘
  • ‘).text(i)); }; $numbering.fadeIn(1700); }); }); </script>

策略模式