首页 > 其他分享 >策略模式

策略模式

时间:2024-04-01 15:12:06浏览次数:19  
标签:ITraffic 策略 SelectTraffic Drive 模式 traffic new public

定义

 public interface ITraffic
 {
      void Drive();
  }

  public class Car:ITraffic
  {

      public void Drive()
      {
          Console.WriteLine("车在陆地行驶");
      }

  }

  public class Ship : ITraffic
  {
      public void Drive()
      {
          Console.WriteLine("船在水上行驶");
      }
  }

  public class AirPlane : ITraffic
  {

      public void Drive()
      {
          Console.WriteLine("飞机在天上飞");
      }
  }

  public class ErrorTraffic:ITraffic
  {
      public void Drive()
      {
          Console.WriteLine("选择错误");
      }
  }

  public class SelectTraffic
  {
      public readonly ITraffic _trafficType;
      public SelectTraffic(ITraffic traffic)
      {
          _trafficType = traffic;
      }

      public void Drive()
      {
          _trafficType.Drive();
      }
  }

调用

 Console.WriteLine("策略模式");
 SelectTraffic traffic = new SelectTraffic(new Car());
 traffic.Drive();
 traffic = new SelectTraffic(new Ship());
 traffic.Drive();
 traffic = new SelectTraffic(new AirPlane());
 traffic.Drive();

 

标签:ITraffic,策略,SelectTraffic,Drive,模式,traffic,new,public
From: https://www.cnblogs.com/daiwk/p/18108456

相关文章

  • 简单工厂模式
    定义publicinterfaceICar{publicvoidDrive();}publicclassXiaoMiCar:ICar{publicvoidDrive(){Console.WriteLine("正在驾驶小米汽车");}}publicclassTeslaCar:ICar{publicvoidDrive(){Console.Wr......
  • 设计模式之组合模式
    概念:将对象组合成树形结构以表示“部分——整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。组合模式有三个角色:抽象构件:定义公有属性和方法。叶子结点:树形结构的底层结点,没有子结点,实现抽象构件的所有操作。中间结点:叶子结点之前的结点,有子结点。组合模......
  • 打破传统消费模式,让每一次购物成为可持续的循环
    亲爱的朋友们,我是微三云的周丽,一名专注于私域电商模式创、新的探索者。私域运营的核心不应仅仅局限于不断的cu销,这样的ce略只会使xiao费者对品牌逐渐失去感觉。更高明的做法是利用场景ce略来深化与用户的联系,直击他们的ton点,使xiao费者自发产生购买yu望,从而提升转化率。循环......
  • 预防 MySQL 死锁的策略
    1、按顺序访问数据:按照一定的顺序访问数据可以减少死锁的发生。例如,如果多个线程或事务需要更新多个表,可以按照相同的顺序来执行更新操作。这样可以避免循环等待和资源竞争。2、避免长时间持有锁:尽量缩短事务的执行时间,避免长时间持有锁。长时间持有锁会增加其他事务等待的......
  • C#中的设计模式
    设计模式在C#和WPF日常开发中扮演着重要角色,它们提供了一套通用的解决方案,用于解决软件设计中的常见问题。以下是关于设计模式的知识点,以及可能会在面试中被问到的一些问题和答案:设计模式的知识点:创建型模式:创建型模式用于处理对象的创建过程,包括单例模式、工厂模式、抽......
  • js 实现简单发布订阅模式
    1.事件调度器classEventEmitter{constructor(){this.events={};}on(event,listener){if(!this.events[event]){this.events[event]=[];}this.events[event].push(listener);}emit(event,...args){if(this.eve......
  • 基于AD作用于域用户和计算机的组策略(1)
    实验介绍:这篇随笔的四个配置都是作用于域用户和计算机,所以需要两台虚拟机一台dns1,一台虚拟机登录域用户验证配置gpmc=GroupPolicyManagerconsole组策略管理控制台,msc可执行文件后缀输入gpmc.msc进入组策略管理一:创建财务部GPO进入组策略管理,右键财务部,点击新建GPO这......
  • 【前端面试3+1】06继承方式及优缺点、缓存策略、url输入到渲染全过程、【二叉树中序遍
    一、继承有哪些方式?以及优缺点        继承的方式包括原型链继承、构造函数继承、组合继承、原型式继承、寄生式继承和组合式继承。1.原型链继承:实现方式:将子类的原型指向父类的实例来实现继承。优点:简单易懂,代码量少。缺点:存在引用类型共享的问题。functionPare......
  • 【前端面试3+1】01闭包、跨域、路由模式
    一、对闭包的理解定义:闭包是指在一个函数内部定义的函数,并且该内部函数可以访问外部函数的变量。闭包使得函数内部的变量在函数执行完后仍然可以被访问和操作。特点:闭包可以访问外部函数的变量,即使外部函数已经执行完毕。闭包可以保持外部函数的作用域不被销毁,从而延长变......
  • 数字化运营策略大揭秘:畅销书《数字化运营》详解
    简介数字化转型已经成为大势所趋,各行各业正朝着数字化方向转型,利用数字化转型方法论和前沿科学技术实现降本、提质、增效,从而提升竞争力。数字化转型是一项长期工作,包含的要素非常丰富,如数字化转型顶层设计、组织架构设计、领军人的数字化思想转型、前沿科技的应用、业务......