【C#】小知识 #8 : 使用partial class + private内部类别,避免日后专案开发受限程度

在开发、维护专案,常会有许多半成品功能,你不会想让别人来使用,因为之后破坏性更新可能性非常高。

这时候可以使用partial class + private内部类别来避免此情况。

首先介绍private内部类别

请看以下例子,可以发现 缓存类别,Model类别 ,其他使用者是无法直接使用,只能单纯使用主要功能类别的API接口,这样日后想要在内部类别修改,删除属性,不用怕影响到其它程式,导致改A坏B情况。

    public static class 主要功能类别    {        public static string API接口()        {            return new 缓存类别().API接口();        }pirvate class 缓存类别{          public string API接口()          {            var model = new Model类别();              return SomeFunction(model);          }               private void SomeFunction(Model类别 model){          //Your Logic          }}   pirvate class Model类别{public string MyProperty { get; set; }   }            }

partial class引进,解决cs档案肥大、可读性差问题

有经验的读者一定有这样经验,前面例子会有一个严重缺点:随着专案的增长,主要功能类别会变成一个庞大的怪物,要避免此问题可以使用partial class

举例:
我们可以把上面三个类别拆成三个cs档案,分别如以下代码。

    public static partial class 主要功能类别    {        public static string API接口()        {            return 缓存类别.API接口();        }    }
    public static partial class 主要功能类别    {pirvate class 缓存类别{          public static string API接口()          {              return SomeFunction();          }        }    }
    public static partial class 主要功能类别    {pirvate class Model类别{public string MyProperty { get; set; }   }    }

系统在编译后会帮助将三个partial类别内容组合成一个,如下面两张图片
20190126154833-image.png
20190126155210-image.png

结语

个人认为这是很重要的小技巧,因为看过满多人为了方便动不动就宣告为public,其实此举会为之后埋下坑...

要记得专案修改受限程度与开放程度成正比,如同图片:
20190126153406-image.png

像是我们常用的LINQ专案中,也是使用此方法做为开发的方式,如同图片
20190126155908-image.png

日后随着类别功能完善,可以视情况慢慢地增加可见度,甚至移出partital类别,这样开发方式紧密、又让人安心。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章