namespace StrategyPattern //策略模式
{/// <summary>/// 定义所以支持的算法的公共接口/// </summary>abstract  class Strategy{/// <summary>/// 算法方法。/// </summary>public abstract void AlgorithmInrerface();}class ConcreateStratetyA : Strategy{public override void AlgorithmInrerface(){Console.WriteLine("实现算法A"); }}class ConcreateStratetyB : Strategy{public override void AlgorithmInrerface(){Console.WriteLine("实现算法B");}}class ConcreateStratetyC : Strategy{public override void AlgorithmInrerface(){Console.WriteLine("实现算法C");}}/// <summary>/// 用一个ConcreateStratety来配置,来维护一个对Stratety对象的引用。/// </summary>class Context{Strategy stratety;public Context(Strategy stratety)//构造器注入具体的策略对象。
        {this.stratety = stratety;}/// <summary>/// 根据具体策略的对象,调用其算法的方法。/// </summary>public void ContextInterface(){stratety.AlgorithmInrerface();}}class Program{static void Main(string[] args){Context context = null;context = new Context(new ConcreateStratetyA());context.ContextInterface();context = new Context(new ConcreateStratetyB());context.ContextInterface();context = new Context(new ConcreateStratetyC());context.ContextInterface();Console.Read();}}
}

转载于:https://www.cnblogs.com/longdb/p/7259206.html

策略模式(Stratety)相关推荐

  1. 【Design pattern】简单工厂过渡策略模式

    把自己当做小菜来跟学<大话设计模式>,跟着故事的思路来走 简单工厂模式:实现一个计算器代码 策略模式:商场打折代码 根据大鸟和小菜的故事,一步步的完善问题的过程!

  2. 设计模式 之美 -- 策略模式

    策略模式作为行为型设计模式中的一种,主要封装相同功能的不同实现算法,用于在用户程序内部灵活切换.对用户来说能够快速替换对应的算法,能够让算法的实现独立于使用的用户. 基本的UML类图如下: 用户使用S ...

  3. 设计模式之策略模式(Strategy)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...

  4. Java中的策略模式实例教程

    策略模式是一种行为模式.用于某一个具体的项目有多个可供选择的算法策略,客户端在其运行时根据不同需求决定使用某一具体算法策略. 策略模式也被称作政策模式.实现过程为,首先定义不同的算法策略,然后客户端把 ...

  5. else 策略模式去掉if_设计模式(三)——简单的状态模式代替if-else

    博主将会针对Java面试题写一组文章,包括J2ee,SQL,主流Web框架,中间件等面试过程中面试官经常问的问题,欢迎大家关注.一起学习,一起成长. 前言 大多数开发人员现在还在使用if else的过 ...

  6. C++模式学习------策略模式

    当遇到同一个对象有不同的行为,方法,为管理这些方法可使用策略模式. 策略模式就是对算法进行包装,是把使用算法的责任和算法本身分割开来.通常把一个系列的算法包装到一系列的策略类里面,这些类继承一个抽象的 ...

  7. 模板方法模式与策略模式的区别

    2019独角兽企业重金招聘Python工程师标准>>> 模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以在不改变算法结构的情况下,重新定义 ...

  8. 【设计模式】 模式PK:策略模式VS状态模式

    1.概述 行为类设计模式中,状态模式和策略模式是亲兄弟,两者非常相似,我们先看看两者的通用类图,把两者放在一起比较一下. 策略模式(左)和状态模式(右)的通用类图. 两个类图非常相似,都是通过Cont ...

  9. 如何使用 Spring 实现策略模式+工厂模式

    欢迎关注方志朋的博客,回复"666"获面试宝典 一.策略模式 策略模式定义了一组算法,将每个算法都封装起来,并且使它们之间可以互换 1.策略模式主要角色 主要角色如下: 封装角色( ...

最新文章

  1. 洛谷P1202 [USACO1.1]黑色星期五Friday the Thirteenth
  2. android-6.0不支持FloatMath.sqrt(x * x + y * y)
  3. spring集成struts2
  4. emlog-博客定制版lu1.3主题模板
  5. 人是什么垃圾?AI识别功能用到垃圾分类上时 网友试了试“扫自己”
  6. C++socket编程(三):3.1 TCP/IP协议特点
  7. 2022年全网首发|大数据专家级技能模型与学习指南(胜天半子篇)
  8. Android Sophix热修复集成
  9. 第106章 Caché 函数大全 $ZF(-4),$ZF(-5),$ZF(-6) 函数
  10. 数据挖掘经典书籍推荐
  11. UML建模(活动图状态图)
  12. ERP中的MPS与APS间的关系
  13. Android中直播视频技术探究之---基础知识大纲介绍
  14. 动漫学日语《夏日重现》(更新中)
  15. 湖南科技大学计算机领导参观老年日间中心,湖南科技大学新闻网
  16. 设置无线移动数据连接到服务器,手机怎么修改无线网络dns
  17. android 三星 安全,三星手机可以升级到Android 7.0,新老用户都必须看一下
  18. ProE常用技巧||命令||设置
  19. ipad能不能编写python_ipad 能做python开发吗
  20. 晚安前学习——第2天

热门文章

  1. linq to sql 中,如何解决多条件查询问题,答案,用表达式树! (下)
  2. 编程语言的排名取决于应用场景和主要公司的需求
  3. Fescar 全局锁介绍
  4. C++学习之路(六):实现一个String类
  5. ossfs工具将OSS挂载到阿里云linux系统目录例子
  6. Codeforces Round #395 (Div. 2) - A
  7. Linux 无法使用su
  8. leetcode笔记:Gray Code(2016腾讯软件开发笔试题)
  9. 学习笔记 --- 编码过程中常见的三种异步方式
  10. 多图:多样化实现App多渠道统计