小编Foo*_*Bar的帖子

有没有更好的方法在java中组合两个字符串集?

我需要结合两个字符串集,同时过滤掉冗余信息,这是我提出的解决方案,有没有更好的方法,任何人都可以建议?也许是我忽视的东西?谷歌没有运气.

Set<String> oldStringSet = getOldStringSet();
Set<String> newStringSet = getNewStringSet();

for(String currentString : oldStringSet)
{
    if (!newStringSet.contains(currentString))
    {
        newStringSet.add(currentString);
    }
}
Run Code Online (Sandbox Code Playgroud)

java

74
推荐指数
6
解决办法
7万
查看次数

用Java重构代码,替换大型if语句

我正在重构我正在处理的项目中的一些代码,并且遇到了一个跟随格式的大型if/else if语句:

if (changer instanceof AppleChanger)
{
   panel = new ApplePanel();
}
else if (changer instanceof OrangeChanger)
{
   panel = new OrangePanel();
} 
Run Code Online (Sandbox Code Playgroud)

现在我的第一个冲动是使用多态来重构它以使它看起来像

panel = changer.getChangerPanel();
Run Code Online (Sandbox Code Playgroud)

但遗憾的是,类包无法访问面板包.

我的下一个冲动是创建一个带有重载方法的PanelChooser类:

PanelChooser.getPanel(changer);

//Overloaded Method
public Panel getPanel(OrangeChanger changer)
{
   Panel orangePanel = new OrangePanel();
   return orangePanel;
}
public Panel getPanel(AppleChanger changer)
{
   Panel applePanel = new ApplePanel();
   return applePanel;
}
Run Code Online (Sandbox Code Playgroud)

这是一个很好的解决方案还是有更好的解决方法?

java refactoring

11
推荐指数
1
解决办法
3226
查看次数

Java反模式名称?包含对象的对象包含...等

是否包含包含...等对象的对象的名称或特定规则.我正在使用一个复杂的系统,通常有5-10层深的物体.我听到为什么这样做的一个原因是一次性将大量数据从服务器传递到客户端,有更好的方法吗?

编辑:似乎它是一些反模式的组合.领域模型应该被清理,下面的反模式是气味:火车残骸模式,除厨房水槽地图以外的一切

java refactoring anti-patterns

8
推荐指数
2
解决办法
961
查看次数

包含空变量的Java对象是否为反模式?如果是这样的话?

如果我查询一个对象说一个动物,并且返回的对象不是null但是包含空变量是错误的吗?比如我可以打电话animal.getDeathDate(); 因为它还没死,但它返回null.因为Turtle getFlightSpeed()会返回null,因为它在添加了Turtle火箭包之前无法飞行.等等

我认为这是一种糟糕的做事方式,因为在调用对象的方法以验证它们包含非空值时,通常会导致需要大量的空检查.是否有任何关于此信息的链接可以进一步告知我和我的同事?

java anti-patterns

5
推荐指数
1
解决办法
1432
查看次数

使用NUnit和XML注释进行C#注释的格式

使用NUnit和XML注释编写C#代码时,是否需要首选格式?

将:

using NUnit.Framework;


namespace FooBar{

    /// <summary> 
    /// The <c>foo</c> class tests bar
    /// </summary>
    [TestFixture]
    public class Foo{
    }
}
Run Code Online (Sandbox Code Playgroud)

是正确的还是:

using NUnit.Framework;


namespace FooBar{

    [TestFixture]
    /// <summary> 
    /// The <c>foo</c> class tests bar
    /// </summary>
    public class Foo{
    }
}
Run Code Online (Sandbox Code Playgroud)

会更好?

c# xml nunit

3
推荐指数
1
解决办法
142
查看次数

测试类 - 什么时候重构?

我正在使用NUnit和Selenium在C#中编写一系列自动测试.

编辑:我正在测试整个网站,开始我为使用网站的三种类型的成员编写了三个类,这些类包含使用selenium来执行这些成员的各种操作的方法.然后创建这些类,并使用适当的输入由我的测试类调用它们的方法.

我的问题是:

我的测试类变得多大有关系吗?(即成千上万的测试?)

什么时候重构我的功能类?(25或50种方法,1000行代码等)

我一直在努力阅读有关测试设计的所有内容,所以如果你有任何好的资源,我会很感激链接.

c# nunit automated-tests unit-testing

2
推荐指数
1
解决办法
195
查看次数

Java - 调用对象的get方法比使用本地对象更慢?

我有一个变量,我在一个类中使用了很多次,因为速度很重要,我想使用最快的方法.

使用之间的速度是否有差异:

modifyValue(User.getSession().getSessionValue());
Run Code Online (Sandbox Code Playgroud)

并将信息设置为本地值,如

private String sessionValue;
sessionValue = User.getSession().getSessionValue();
modifyValue(sessionValue);
Run Code Online (Sandbox Code Playgroud)

在几个不同的地方使用变量?哪种风格更好,还是更清楚明白?如果上面的例子当前正在现有代码中使用,那么值得花时间进行重构吗?

java refactoring

2
推荐指数
1
解决办法
151
查看次数