问题标签 [parameter-object]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
196 浏览

intellij-idea - 提取参数对象有什么好处?

IntelliJ-IDEA 中有一个重构工具,它允许我从方法中提取参数对象。

在此处输入图像描述

这将执行以下操作:

前:

后:

为什么这比以前更好?

现在,如果我必须使用这个方法,我需要在每次调用它时创建一个新的点对象。而以前,我可以只使用原始类型。

我的感觉是方法签名通常应该朝相反的方向发展。例如,如果你有一些函数可以找出一个名字有多受欢迎,如下所示:

然后你像这样提取一个参数对象:

这不是让事情变得更糟吗?例如,如果在Person从重构菜单创建类之后,我决定删除该getName()方法,因为我不希望该名称对所有人公开可用,但其他类使用了该nameRanking函数,该怎么办?现在我需要更改我的 nameRanking 函数。如果我使用内置的 String 类,我知道注入这个函数的任何东西都不会改变。

0 投票
0 回答
49 浏览

java - 指的是方法参数对象内部的包含对象?

不知道如何表述这个问题在技术上是正确的,但假设我有一个对象,该对象(outer)有一个将另一个对象(inner)作为参数的方法 - 我如何outer从内部引用inner

为了澄清我的意思,这里有一个使用 Android 的例子EditText和一个实现TextWatcher

在这个例子中,我当然可以myEditTextTextWatcher实现中使用。但我想知道的是,在这种情况下,是否有更通用的方法可以从 获取"outer"对象"inner"

我知道MyClass.this在处理匿名内部类时可以使用,但在这种情况下不起作用。

0 投票
4 回答
23311 浏览

design-patterns - 传递单个对象与传递多个参数

假设我有以下

我需要定义一个函数doStuff,它使用一个对象的Foo, Bar,并做一些事情Baz

我在哪种实现方法doStuff更好之间苦苦挣扎(假设将其doStuff放在类中是不可取的A

方法A

或者

方法B

据我所知,(+优点,-缺点)

方法A

+清楚地知道什么参数doStuff()在起作用

- 容易受到长参数列表的影响,更容易受到用户错误的影响

方法B

+简单易用的方法

+似乎更具可扩展性(?)

- 对类产生不必要的依赖A


任何人都可以分享关于这两种方法的优缺点的更多见解吗?

0 投票
1 回答
206 浏览

java - 如何将长参数列表重构为 Java 中的参数对象?

我目前正在尝试重构 BufferedImage 类中的 getRGB、getSubimage 和 setRGB 方法。我对 Java 还很陌生,想写出好的代码;问题是我的参数列表变得很长,给我带来了问题。我发现参数对象是一种解决方案,但是我正在努力实现它。

我能否得到一个关于如何使用参数对象改进以下方法的表示?

public void setRGB​(int startX, int startY, int w, int h, int[] rgbArray, int offset, int scansize)