码迷,mamicode.com
首页 > 其他好文 > 详细

oop的编程

时间:2017-02-02 13:52:28      阅读:213      评论:0      收藏:0      [点我收藏+]

标签: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中进行变动;所以,并不是那么的完美,那么我们再进一步的进行优化;

 

oop的编程

标签:desc   weekly   exce   support   exception   line   ase   color   逻辑   

原文地址:http://www.cnblogs.com/mc67/p/6361107.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!