[设计]模版模式

来源:互联网 发布:用python产生文件 编辑:程序博客网 时间:2024/06/06 17:34

[设计]模版模式

场景

  • 我们有些操作流程是固定的第一步做什么第二步什么一切都是定的,就像古代的君主一样,生生世世都不变的都东西

解决办法

  • 我们肯定就是在它一出生就它的流程定下来,对于一个对象一出生也就是它如查不继承别人就是它自己,但是设计依赖了抽象的原则是不能变的。所以我们一般是在它的基类的方法中把流程固化下来
  • 还有一点就是要注意,这个方法一定不能被子类重写,不然你懂得,流程就不是固化了
  • 最近没有写设计模式相关的东西,因为其它的几种模式要不就是太经常见到了,要不就是太不经常见到了。但是想着还是常见的写完了,切记设计模式不止23种但这是第一次系统的总结也最为流传的,现在出了很多的设计模式都有自己的适应特点。这只是招式,不要过度迷恋。

Code

  • 我们新建一个子类
public abstract class LidarBase    {        public void TemplateFunction()        {            StartLidar();            StartCollectionData();            CloseLidar();        }        public virtual void StartLidar()        {            Console.WriteLine("开始开雷达");        }        public virtual void StartCollectionData()        {            Console.WriteLine("开始采数");        }        public virtual void CloseLidar()        {            Console.WriteLine("开始关雷达");        }    }  
  • 我们实例化一个子类
 class TempLidar:LidarBase    {        public override void StartLidar()        {            base.StartLidar();            Console.WriteLine("开始开温雷达");        }    }
  • 最后我们可以这样调用
 class Program    {        static void Main(string[] args)        {            TempLidar tl = new TempLidar();            tl.TemplateFunction();            Console.Read();        }    }

类图

  • 占坑(放心一定会补的,只办为自己家里的电脑有点老破powerdesigner装上卡的点不动,stratuml用不习惯,等习惯了一定补上)

注意

  • 一定要注意流程不变,切以后不论需求怎么更改都不会变的东西最好用,但是有可能变,可能性超过35%就不要了一定要记得问题的2-8定律,80%的问题一定是20%的代码产生的。
  • 还有子类如果实现过多可能要理清楚子类之间的关系也是一个很大的工作量。
  • 好处就是开闭吧,代码复用吧,你不用把一个方法到处copy了
    源码


  • 放上一首今天很火的歌曲哈哈

  • 风清扬

-> 码品,也是我们面对这个世界的态度。代码也是我们身影在这个社会上的投射。