我目前正在从C转向
Java工作,并且在没有常量和指针的情况下遇到困难以确保意图始终清晰.我遇到的最大问题之一是返回相同类型的修改对象.
以滤波器功能为例.它用于过滤掉值.
public List filter(List values) {
...
}
这里的一切都是Serializable,所以我们可以先复制整个列表,然后修改内容并返回它.虽然看起来有点无效但效率低下.特别是如果该列表很大.每次复制输入看起来都很笨拙.
我们可以正常传递它,修改它并清楚地表明我们是从名称中做到的:
public void modifyInputListWithFilter(List values) {
...
}
这是我能想到的最干净的方法 – 如果需要,你可以事先复制它,否则只是传入它.但是我仍然宁愿不修改输入参数.
我们可以使List成为我们所在类的成员变量,并将filter方法添加到当前类中.虽然现在我们的课程不仅仅是一件事,但很可能.
我们可以考虑将List移动到它自己的类,过滤器是它的函数.虽然对于一个变量来说似乎有点过分,但我们很快会有更多的课程,而不是我们可以追踪的.此外,如果我们只使用这个策略,而不仅仅是过滤发生在List类中,将不可避免地开始做多个事情.
那么写这篇文章的最佳方式是什么?为什么?