首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

保护人模式

2012-06-28 
保护者模式看了电视剧《神秘博士》里面,一个父亲把女儿的思维拷贝到电脑里面,然后设置了一个病毒检测者DoctM

保护者模式
看了电视剧《神秘博士》里面,一个父亲把女儿的思维拷贝到电脑里面,然后设置了一个病毒检测者DoctMoon来保护小女儿。
当看到把抽象的电脑程序,形象化为一个个活生生的人物的时候,被震撼的同时,萌发了一个在自己程序中添加一个医生来保护自己程序的想法。

C# code
首先是一个用于测试的类,类中有个做标志的静态变量。    public class RqTest {        public static bool Rq = false;        public bool test()         {            return Rq;        }    }

然后是CAL类,CAL类里面又有一个私人医生,负责在CAL“生病”的时候做些修复。
C# code
 public class CAL    {       private DoctMoon doc = new DoctMoon();        public delegate bool Execute();        public string Save(Execute ex)        {            string msg = string.Empty;            if(ex()){                msg += "CAL 成功执行指令\n";            }            else            {                msg+="CAL 被入侵,DocMoon医生对CAL进行了检测和修复!-修改结果为:"+doc.Fix().ToString()+"\n";                msg += "CAL 再次执行,执行结果为:" + ex().ToString() + "\n";            }            return msg;        }        public class DoctMoon:IFix        {            public bool Fix()            {                RqTest.Rq = true;                return true;            }        }    }


客户端调用的代码。
C# code
        static void Main(string[] args)        {            //RqTest.Rq = true;//此数据为初始需要的数据,如果true则,CAL可以成功执行,如果false,CAL执行失败,由DoctMoon修复。            CAL.CAL cal = new CAL.CAL();            Console.WriteLine(cal.Save(new CAL.RqTest().test));            Console.ReadKey();        }

执行结果:

CAL 被入侵,DocMoon医生对CAL进行了检测和修复!-修改结果为:True
CAL 再次执行,执行结果为:True



[解决办法]
成本太大了
[解决办法]
生动的路过
[解决办法]
可否解释一下是什么成本 一直都听到成本问题
探讨

成本太大了

[解决办法]
类似于进程守护那种?

热点排行