• 你的代码中会出现大类的原因
  • 发布于 2个月前
  • 150 热度
    0 评论
  • 梦清幽
  • 0 粉丝 33 篇博客
  •   
一个类之所以成为大类,一种表现形式是长函数,还有一种表现形式是类里面有特别多的字段和函数,也许,每个函数都不大,但架不住数量众多。这次我们就主要来说一下这种形式的大类。

之所以说大类是一个坏味道,因为一个人理解的东西是有限的,没有人能同时面对所有细节。而人类面对复杂事物给出的解决方案是分而治之。经过分解拆分,人们面对的不再是细节,而是模块,模块的数量显然会比细节数量少,这样人们的理解成本就降低了。

理解了这一点,我们再回过头来看大类这个坏味道,你就知道问题出在哪了。如果一个类里面的内容太多,它就会超过一个人的理解范畴,顾此失彼就在所难免了。按照这个思路,解决大类的方法也就随之而来了,就是把大类拆成若干个小类。

一.产生大类的原因
那么,如何拆分大类呢。首先我们要看下大类产生的原因?
1.职责不单一

通常来说,很多类之所以巨大,大部分原因都是违反了单一职责原则。而想要破解“大类”的谜题,关键就是能够把不同的职责拆分开来。


2.字段未分组
大类的产生往往还有一个常见的原因,就是字段未分组。


二.解决方案

知道大类产生的原因,解决方案自然也就出来了,我们需要根本对不同内容的变动原因进行分析,接下来就是根据职责,拆分出不同的实体,将字段做分组,用类把不同的信息分别做封装。

或许你已经发现了,所谓的将大类拆解成小类,本质上在做的工作是一个设计工作。我们分解的依据其实是单一职责这个重要的设计原则。或许有人会担心,如此拆分会增加很多类的数量。然而我想说类的数量多少不是问题,通过怎样的方式,降低代码理解的难度才是我们要考虑的问题。

另外,很多人会纠结,类分开了,但表在一起,其实针对这种情况很多框架都是支持的。

三.极致追求
每个类不超过2个字段。
用户评论