我是靠谱客的博主 靓丽钢铁侠,最近开发中收集的这篇文章主要介绍code-smell-5-较长的参数列表,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在我们早期的编程时代,我们被教授说任何我们需要的东西都按照常规的通过参数传入。这一点是可以理解的,因为另一种方式就是全局数据,全局数据被成为魔鬼并且使用起来也有很多痛点。面向对象改变了这个局面,因为如果你没有一些你需要的东西,你总是可以要求别的对象提供给你。因此有了对象,你不需要传入这个方法需要的所有东西了;取而代之的是你传入了足够的东西,这个方法可以拿到任何它需要的。一个方法所需要的很多东西都是可以在其宿主的类中可以得到的。在面向对象编程中,参数列表趋向于比传统的编程中短小很多。


这样子其实很好,因为太长的参数列表是不易于理解的,因为它们变得不一致且难于使用,还有因为你需要更多的数据从而永远不会去改变它们。大多数的改变会通过传对象来移除,因为你大多数时候更可能会需要仅仅几个请求就得到一块儿新的数据。


当你可以通过传入一个参数,由一个你已知的对象发请求来得到你想要的数据的时候,可以使用Replace Parameter with Method.这个对象一定是一个属性或者另一个参数。使用Preserve Whole Object来拿到从一个对象收集的一堆数据然后用这个对象替换它。如果你有好几个数据条目但是没有逻辑上的一个对象,那么使用Introduce Parameter Object。


当你在做这些修改的时候有一个非常重要的问题。这发生在当你明确的不想在被调用对象和这个更大的对象之间创建依赖的时候。在这种情况下解开数据并分别以参数的方式传入是有道理的,但是要注意这样引入的痛点。当参数列表太长或者改变太频繁的时候,你就需要重新思考你的依赖结构了。


原文链接:https://sourcemaking.com/refactoring/long-parameter-list

最后

以上就是靓丽钢铁侠为你收集整理的code-smell-5-较长的参数列表的全部内容,希望文章能够帮你解决code-smell-5-较长的参数列表所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部