首页 > 代码库 > oop的编程

oop的编程

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