将方法组合在一个方法中还是有几种方法更好?

时间:2015-04-16 10:57:59

标签: java list methods

我有一个管理一堆列表的类,这意味着该类有3个ArrayList作为私有数据字段。

我希望能够将这些列表中对象的必要信息打印到String数组中。我希望能够对所有三个列表执行此操作,这意味着我需要三种方法。这些方法之间的唯一区别是,我想从对象中获取什么样的信息,当然还有数组的长度。

所以我的问题是:使用一个方法来确定我想要打印的内容是否更好,或者更好地使用三种不同的方法?

示例:

public String[] method(String type){
    if(type.equals(type1)){
        <print out necessary information from objects>
    }

    <two more methods...>
} 

4 个答案:

答案 0 :(得分:3)

方法应该完成一件事。如果你能以某种方式将它们结合起来。更好的实践是一种表示一个过程的方法,然后看看如果所有三个方法都是一个过程的一部分,那么这三个方法是否可以在一个通用方法中组合。

答案 1 :(得分:2)

来自Effective Java

  

正如类可以从泛化中受益一样,方法也是如此。   静态实用方法特别适合   generification。集合中的所有“算法”方法(例如   已经泛化了binarySearch和sort。

所以,如果可以做一个处理所有列表的通用方法,那就是我的选择。

我认为类型检测不是一个好主意。避免它的一种方法是,可以使不同列表的所有对象实现一个可用于打印它们的界面。

然后,您可以执行以下操作:

public String[] method(List<MyPrintableInterface> arg){...

答案 2 :(得分:0)

假设您有3个类ABC,那么提供一个通用接口不是更好,例如print()所有类都会实行?然后,您只需要实现1个方法。

public interface IPrintToScreen {
    public void print();
}

public class A implements IPrintToScreen {
    public void print() {
        System.out.println(...);
        ...
    }
}
...

在您的代码中:

public void PrintListToScreen(List<IPrintToScreen> listToPrint) {
    for(IPrintToScreen item : listToPrint) {
        item.print();
    }
}

答案 3 :(得分:0)

我的印象你应该检查:http://en.wikipedia.org/wiki/Software_design_pattern或类似的东西,因为你问(如果我正确理解)一些在现实生活中不应该发生的奇怪问题。