相关疑难解决方法(0)

与Java 8中的默认方法和抽象类的接口

由于Java 8允许在名为Default Methods的接口中默认实现方法,因此在何时使用a之间似乎存在混淆abstract class.

那么什么时候应该使用与默认方法的接口,何时应该使用抽象类?抽象类在这种情况下仍然有用吗?

java abstract-class interface java-8 default-method

489
推荐指数
10
解决办法
10万
查看次数

如果"Utilities"类是邪恶的,我在哪里放置我的通用代码?

我通常遵循全局变量/函数是邪恶的规则,并且每一段代码都应该存在于它所属的类中.

这是一个非常容易遵循的规则,我相信到目前为止我还没有遇到过这条规则的问题.

然而,今天,我需要的功能添加到我的组装,而不是一个特定的类.也就是说,我的几乎所有类都可以用于这个特定的功能.

我应该把这个功能放在哪里(+1重载)?

如果我把它放在"公用事业"课程中,我会觉得很脏.如果我将它添加到一个半相关的类,并让其他类直接调用它,我会感觉更糟.

这段特殊的代码基本上是IList<PointF>一个规范化的列表.我觉得现在添加它作为扩展方法IList<PointF>可能是最好的选择...

c# oop global-variables utility-method

64
推荐指数
2
解决办法
2万
查看次数

单位或整合测试可以有吸气剂和固定剂吗?

我正在尝试编写集成测试,并希望以最佳方式编写最佳实践,礼仪等.

首先,我有一个关于如何在另一个测试类中重用现有测试的问题,我在主题如何在另一个测试类中重用现有的JUnit测试中找到了答案

在将基本测试功能和相关成员字段移动到基类之后,我发现我需要使成员字段受到保护,或者我需要拥有适当的getter和setter,以便我可以在继承的测试类中使用它们.这是一个例子:

public abstract class BaseTests {

    private Class classObj;      // or protected without getter/setter?

    protected void somethingHelper() {
        // Test something
    }

    protected void somethingElseHelper() {
        // Test something for classObj
    }

    public Class getClassObj() {
        return classObj;
    }

    public void setClassObj(Class other) {
        classObj = other;
    }
}

public class TestClass1 extends BaseTests {
    @Test
    public void testSomething() {
        somethingHelper();
    }
}

public class TestClass2 extends BaseTests {
    @Test
    public void testSomethingAndSomethingElse() { …
Run Code Online (Sandbox Code Playgroud)

java junit unit-testing jboss-arquillian

4
推荐指数
1
解决办法
250
查看次数

类图是否总是需要属性?

所以,我明白一个类可以有属性和方法。

1)如果一个类有一个方法但没有属性,这可能吗?(这似乎不可能,在我看来它违背了创建类的目的)

2)如果一个类有属性但没有方法,这可能吗?(这似乎是可能的)

非常感谢!

uml class-diagram software-design

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

单一责任原则(SRP)是否允许实用程序类

我刚刚回答了一个与SRP有关的问题让我想到:SRP如何站在实用工具类上?

根据定义,实用程序类往往会做很多事情.我可以看到单个接入点上的gatering相关实用程序是如何有用的.按照SRP标准,您无法在一个类中实现实用程序.这是否意味着实用程序类是禁止的,或者SRP是否允许它,如果它只是多个类的外观,每个类都遵循SRP?

tdd single-responsibility-principle solid-principles

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