首页 > 其他 > 详细

oop的编程

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

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的编程

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!