• 第 1 章 策略模式【Strategy Pattern】


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    //刘备要到江东娶老婆了,走之前诸葛亮给赵云(伴郎)三个锦囊妙计,说是按天机拆开解决棘手问题,
    //嘿,还别说,真是解决了大问题,搞到最后是周瑜陪了夫人又折兵呀,那咱们先看看这个场景是什么样子
    //的。
    //先说这个场景中的要素:三个妙计,一个锦囊,一个赵云,妙计是小亮同志给的,妙计是放置在锦囊
    //里,俗称就是锦囊妙计嘛,那赵云就是一个干活的人,从锦囊中取出妙计,执行,然后获胜,用 JAVA 程序
    //怎么表现这个呢?我们先看类图:


    namespace CeLuoMoShi
    {
    //首先定一个策略接口,这是诸葛亮老人家给赵云的三个锦囊妙计的接口
    public interface IStrategy
    {

    void Option();
    //每个锦囊妙计都是一个可执行的算法
    }

    public class GivenGreenLight : IStrategy
    {

    public void Option()
    {
    Console.WriteLine("求吴国太开个绿灯,放行!");
    }
    }

    /// <summary>
    ///
    /// </summary>
    public class BackDoor : IStrategy
    {
    //找乔国老帮忙,使孙权不能杀刘备
    public void Option()
    {
    Console.WriteLine("找乔国老帮忙,让吴国太给孙权施加压力");
    }
    }
    /// <summary>
    ///
    /// </summary>
    public class BlockEnemy : IStrategy
    {
    //求吴国太开个绿灯
    public void Option()
    {
    Console.WriteLine("孙夫人断后,挡住追兵");
    }
    }

    public class Context
    {
    private IStrategy straegy;
    public Context(IStrategy strategy)
    {
    this.straegy = strategy;
    }
    //使用计谋了,看我出招了
    public void operate()
    {
    this.straegy.Option();
    }
    }
    public class ZhaoYun
    {
    // *问题来了:赵云实际不知道是那个策略呀,他只知道拆第一个锦囊,
    // *而不知道是BackDoor 这个妙计,咋办? 似乎这个策略模式已经把计谋名称写出来了
    // *
    // * 错!BackDoor 、GivenGreenLight 、BlockEnemy 只是一个代码,你写成first 、second、
    //third ,没人会说你错!
    // *
    // * 策略模式的好处就是:体现了高内聚低耦合的特性呀,缺点嘛,这个那个,我回去再查查
    // */
    static void Main(string[] args)
    {
    Console.WriteLine("//刚刚到吴国的时候拆第一个");
    Context context;
    context = new Context(new BackDoor());
    context.operate();
    Console.WriteLine("//刘备乐不思蜀了,拆第二个了");
    context = new Context(new GivenGreenLight());
    context.operate();
    Console.WriteLine("//孙权的小兵追了,咋办?拆第三个");
    context = new Context(new BlockEnemy());
    context.operate();
    Console.Read();
    }
    }
    /*
    * 然后就是赵云雄赳赳的揣着三个锦囊,拉着已步入老年行列的、还想着娶纯情少女的、色迷迷的刘老
    爷子去入赘了,嗨,还别说,小亮的三个妙计还真是不错,瞅瞅:
    */

    }

  • 相关阅读:
    form表单
    JsonResponse对象
    HttpRequest对象
    Django基础
    ssh私钥登录
    监控window目录是否为空自定义item
    redis频繁报错Cannot allocate memory
    脱敏html文件文件
    MySQL删除数据
    ftp服务器搭建
  • 原文地址:https://www.cnblogs.com/lifesteven/p/3574075.html
Copyright © 2020-2023  润新知