码迷,mamicode.com
首页 > 其他好文 > 详细

大话设计模式读书笔记--2.策略模式

时间:2017-02-14 15:19:49      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:http   读书笔记   ret   结构   rar   ima   需要   file   引用   

面向对象的编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类

定义

它定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户

模式结构

技术分享

Strategy: 定义所有支持算法的公共接口

ConcreteStrategy: 封装了具体的算法或行为,也就是具体的策略

Context:是算法对象工厂, 维护一个Strategy对象的引用, 产生具体算法对象

模式实现

场景:模拟商城收银软件,营业员根据客户所购买商品的单价和数量,向客户收费,优惠活动为打8折和满100返10块

场景分析:

业务不变的点: 获得总金额(结果)

业务变化点: 如何计算总金额(具体行为)

下载代码,解压后如下图:

技术分享

优缺点

优点:1.Strategy是抽象父类,继承有助于提取出算法中的公共功能

       2.简化了单元测试,每个算法都有自己的类,可以单独测试

缺点:本例中,使用了是简单工厂模式+策略模式

       1.客户端需要知道所有的策略类

使用场景

在不同的时间,应用不同的业务规则, 但是目的是一样的

大话设计模式读书笔记--2.策略模式

标签:http   读书笔记   ret   结构   rar   ima   需要   file   引用   

原文地址:http://www.cnblogs.com/liuconglin/p/6397130.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!