23种设计模式之行为型模式——策略模式
来源:互联网 发布:淘宝zara原单是真的吗 编辑:程序博客网 时间:2024/05/18 10:19
策略模式它定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。(减少各种算法类与使用算法类之间的耦合)
比如:商场收银时如何促销,用打折还是返利,其实都是一些算法,用工厂来生成算法对象,这没错,但算法本身只是一种策略,最重要的是这些算法是随时都可能相互替换,这就是变化点,而封装变化点是我们面向对象的一种很重要的思维方式。
策略模式(strategy)结构图
Context上下文,用一个ConcreateStrategy来配置,维护一个对Strategy对象的引用
Strategy:策略类,定义所有支持的算法的公共接口
ConcreteStrategyA、ConcreteStrategyB、ConcreteStrategyC是具体策略类,封装了具体的算法或行为,继承于Strategy
看上去策略模式跟工厂模式很相像,下一节我将简要分析一下策略模式与工厂模式的区别
2 0
- 23种设计模式之行为型模式——策略模式
- 设计模式-行为型之策略模式
- 【23种设计模式】行为型模式 > 策略模式
- 设计模式——策略模式(行为型模式)
- 设计模式 行为模式之策略模式
- 【行为型模式】策略模式(Strategy)之23种java设计模式
- 设计模式22——行为型模式之策略模式
- java设计模式之行为型模式-策略模式
- 设计模式之行为型模式---策略模式
- Java设计模式之行为型模式(策略模式)
- 设计模式 - 行为型模式 - 策略模式
- 设计模式->行为型模式->策略模式
- JAVA设计模式(13) —<行为型>策略模式(strategy)
- 【设计模式】—-(21)策略模式(行为型)
- 【设计模式】行为模式之Strategy策略
- 行为型模式之七——策略模式
- GoF23种设计模式之行为型模式之策略模式
- 二十三种设计模式之行为型模式之策略模式
- 网页布局基础
- tikv的操作
- 微信图片下载问题
- spring加载log4j
- UVA 10825 Anagram and Multiplication(暴力枚举)
- 23种设计模式之行为型模式——策略模式
- 初级_过滤器的整理
- 解决启动程序时先显示带title的白背景,后加载Activity的问题
- webView加载网页留白
- 占位21
- Arcgis Server发布GP服务
- 推荐一款fragment管理器
- PHP message: PHP Warning: PHP Startup: Unable to load dynamic library
- linux安装apache