标签:desc weekly exce support exception line ase color 逻辑
oop的编程
我们来看一段代码的优化,来逐步的体会一下;
public enum ScheduleType { Once=0, Daily=1, Weekly=2 } //这种方式,我们可以使用多种方式来进行优化滴呀; //简单的swich case 方式滴啊; //然后就是我们的 委托的方式滴呀 //还有我们的 就是我们的重载的方式滴啊 //多种多样的方式和写法滴啊; public class TaskInfo { public void ShowScheduleDescription(ScheduleType type) { //这种将判断的逻辑写在了我们的函数内部滴呀; //这种方式将功能的实现(业务逻辑混合在一起了滴呀)和方法的定义 switch (type) { case ScheduleType.Once: Console.WriteLine("this is once activitys"); break; case ScheduleType.Daily: Console.WriteLine("this is week activitys"); break; case ScheduleType.Weekly: Console.WriteLine("this si weekly activitys"); break; default: throw new InvalidOperationException("unsupported sceduled..."); } } }
接下来我们做到了“看似分离的一个状态滴呀”,注意,我这里强调的是看似;
public class TaskInfo2 { public void ShowScheduleDescription(ScheduleType type) { ScheduleActivity s = new ScheduleActivity(); switch (type) { case ScheduleType.Once: s.Once("this is once"); break; case ScheduleType.Daily: s.Daily("this is dail"); break; case ScheduleType.Weekly: s.Weekly("this is weekly"); break; default: throw new InvalidOperationException("unsupported sceduled..."); } } } //这样就将我们的方法定义和我们的具体实现给分离的滴呀; public class ScheduleActivity //动态的扩展就可以在我们的这里进行了滴啊; { public void Once(string Str) { Console.WriteLine(Str); } public void Daily(string Str) { Console.WriteLine(Str); } public void Weekly(string Str) { Console.WriteLine(Str); } }
然后,我们通过委托将将具体的实现进行分离;
从上面的代码中,我们看到,将具体的实现进行的分离,但是,你会发现如果要进行扩展,我们不仅要在ScheduleActivity中添加代码,还要在ShowScheduleDescription中的
switch中进行变动;所以,并不是那么的完美,那么我们再进一步的进行优化;
标签:desc weekly exce support exception line ase color 逻辑
原文地址:http://www.cnblogs.com/mc67/p/6361107.html