1

我有一个关于界面设计的问题。下面我将尝试用一个简单的例子来说明。

想象一下我有一个界面:

public interface TestInterface {

    public List getData();

}

我有一个实现类:

public class TestInterfaceImpl implements TestInterface{

    public List<Customer> getData() {
        return null; //will return a list of customers
    } 
}

我这个糟糕的设计是在没有指定类型(List)的接口中返回一个List,然后在实现类(List)中指定它?

谢谢 - 任何评论表示赞赏。

4

3 回答 3

9

在任何新代码中使用原始类型都是一个坏主意。相反,参数化接口。

public interface TestInterface<T> {

    public List<T> getData();

}

public class TestInterfaceImpl implements TestInterface<Customer> {

    public List<Customer> getData() {
        return null; //will return a list of customers
    } 
}

如果您以前从未编写过泛型类,或者只是不确定所有细节,您可能会发现Java 教程的泛型课程很有用。

于 2013-06-24T19:15:15.793 回答
3

您可能想要使用参数化的 iface:

public interface TestInterface<T> {

    public List<T> getData();

}

public class TestInterfaceImpl implements TestInterface<Customer> {

    public List<Customer> getData() {
        return null; //will return a list of customers
    } 
}
于 2013-06-24T19:16:12.460 回答
3

好吧,它本身的设计还不错,但是泛型更好,类型安全的设计:

//parametrize your interface with a general type T
public interface TestInterface<T> {
    public List<T> getData();
}

//pass a real type to an interface
public class TestInterfaceImpl implements TestInterface<Customer> {
    public List<Customer> getData() {
        return null; 
    } 
}
于 2013-06-24T19:16:31.410 回答