如何写出漂亮的代码——臃肿的service

在我们的项目架构中,数据库访问通常是用entity framework(EF),另外有一个很重要的service层,主要用于跟EF交互,也会在这一层封装大部分的业务逻辑。通常情况下,我们会用一个接口将某个service的成员提出来,然后通过IOC获取该service的实现。

由于service层主要为UI层提供服务,为了让调用者直接的看到可用的方法,因此往往某个service会包含某个模块的所有方法和属性,于是这个service会变得非常庞大。举个例子,比如我们有一个IProductService,用于为product模块提供数据服务。这个product模块下面包含多个子模块,比如该product的各种统计数据,销售,订单,跟踪信息等。这样一来,这个IProductService下面就可能有30多个方法,如果将这么多的方法写到一个文件里头,那这个文件很难不超过300行代码。

读到这里,你肯定在想我们可以把这些实现的代码分成多个块。可能首先想到的,也是我们大多数程序员正在写的,那就是#region/#endregion。 其实还有另外一个方案,那就是partial class。

使用partial class来拆分我们的service,其实只是一个太简单不过的想法,但就是这个思想上简单的进步,拯救了我多少的代码。从此,我的service类非常丰富,而service的实现根据模块或者调用者角色或者其他分配到多个partial类,每一个文件不超过300行代码,让维护变得非常简单,让代码变得易读。

其实使用partial类来拆分我们的大类不仅仅是可以用于service层,而是可以用于任何地方。

我最近新加入了一个项目组,这个项目的代码写的有些糟糕,很多类超过1000行代码,很多方法200多行代码,看到这样的代码实在不想去打开编辑,更别谈读懂其业务逻辑并维护。这个项目运行了好几年了,好几批程序员写过代码,可以说这个项目被多少程序员糟蹋得不成样子了。经过简单的分析,其实主要的问题在于service层和controller层的类文件太大,于是我安排人员用partial class进行拆分。重构后的代码别提变得多清纯了,让我们这些IT男喜欢不已。

朋友,你的项目里有大类吗?试着用partial class拆分下吧,相信你会有惊喜的。

转载于:https://www.cnblogs.com/huanjianlin/archive/2013/03/29/2988219.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值