当前位置: 首页 > 科技观察

小类太多

时间:2023-03-15 00:01:37 科技观察

当我在做“干净代码”培训或者和同事讨论问题时,这样的争论会一遍又一遍地出现:“如果我把我所有的代码都拆分成这样的小方法和小类,那怎么办?我在这么多东西中找到我想要的东西?我需要翻几十个甚至上百个文件!这种观点是有问题的,并不是说他们是错的。而我也确实有过为了理解一个过程,在一堆小类中仔细查看代码的经历。如果你想彻底理解一段代码,当然最好是所有的代码都可以放在一起并出现在屏幕上。您可以从上到下逐行阅读。如果这些代码被拆分成大量的小方法和小类,你需要跟踪哪个方法来自哪个类,无形中会增加工作量。但我仍然认为这种观点是错误的。问题是这种观点的前提是你要彻底理解所有这些代码。但是如果你想从更高层次的角度,抽象的角度来看你的代码,那么这个拆分是必不可少的。你不可能拥有所有的知识。当面对一个不太简单的编程任务时,完全理解所有代码是不可行的。现实世界的任务通常需要您执行以下操作:减少您需要理解的代码量使代码尽可能易于理解关键是提炼和抽象代码!让我问你一个问题:你是否经常使用HashMap-或者你最喜欢的语言中的等效类、方法?它很可能一天要使用几次,不是吗?但是你经常查看HashMap的源码吗?可能几乎从来没有!因为我们都知道Map可以做什么,所以我们知道HashMap是map最常用的实现类之一。这就是我们需要知道的全部。我们只是去使用它。我们知道它的功能用法。我们知道使用它时会发生什么。如果你能像这样抽象你的方法和类,大多数时候你甚至不需要查看提取的源代码。你只需要看到它的名字就知道它在做什么。也许你不知道它是如何实现的,但你已经知道如何使用它了。如果你真的需要深入这些代码,这个时候你就会遇到我们上面提到的情况。当然,如果你的方法和类没有HashMap那么清晰易懂,说明还有改进的空间。原文链接:http://blog.schauderhaft.de/2014/01/05/tons-of-small-classes/翻译链接:http://www.aqee.net/tons-of-small-classes/