问题标签 [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.
intellij-idea - 提取参数对象有什么好处?
IntelliJ-IDEA 中有一个重构工具,它允许我从方法中提取参数对象。
这将执行以下操作:
前:
后:
为什么这比以前更好?
现在,如果我必须使用这个方法,我需要在每次调用它时创建一个新的点对象。而以前,我可以只使用原始类型。
我的感觉是方法签名通常应该朝相反的方向发展。例如,如果你有一些函数可以找出一个名字有多受欢迎,如下所示:
然后你像这样提取一个参数对象:
这不是让事情变得更糟吗?例如,如果在Person
从重构菜单创建类之后,我决定删除该getName()
方法,因为我不希望该名称对所有人公开可用,但其他类使用了该nameRanking
函数,该怎么办?现在我需要更改我的 nameRanking 函数。如果我使用内置的 String 类,我知道注入这个函数的任何东西都不会改变。
java - 指的是方法参数对象内部的包含对象?
不知道如何表述这个问题在技术上是正确的,但假设我有一个对象,该对象(outer)
有一个将另一个对象(inner)
作为参数的方法 - 我如何outer
从内部引用inner
?
为了澄清我的意思,这里有一个使用 Android 的例子EditText
和一个实现TextWatcher
:
在这个例子中,我当然可以myEditText
在TextWatcher
实现中使用。但我想知道的是,在这种情况下,是否有更通用的方法可以从 获取"outer"
对象"inner"
?
我知道MyClass.this
在处理匿名内部类时可以使用,但在这种情况下不起作用。
design-patterns - 传递单个对象与传递多个参数
假设我有以下
我需要定义一个函数doStuff
,它使用一个对象的Foo
, Bar
,并做一些事情Baz
我在哪种实现方法doStuff
更好之间苦苦挣扎(假设将其doStuff
放在类中是不可取的A
)
方法A
或者
方法B
据我所知,(+优点,-缺点)
方法A
+清楚地知道什么参数doStuff()
在起作用
- 容易受到长参数列表的影响,更容易受到用户错误的影响
方法B
+简单易用的方法
+似乎更具可扩展性(?)
- 对类产生不必要的依赖A
任何人都可以分享关于这两种方法的优缺点的更多见解吗?
java - 如何将长参数列表重构为 Java 中的参数对象?
我目前正在尝试重构 BufferedImage 类中的 getRGB、getSubimage 和 setRGB 方法。我对 Java 还很陌生,想写出好的代码;问题是我的参数列表变得很长,给我带来了问题。我发现参数对象是一种解决方案,但是我正在努力实现它。
我能否得到一个关于如何使用参数对象改进以下方法的表示?
public void setRGB(int startX,
int startY,
int w,
int h,
int[] rgbArray,
int offset,
int scansize)