我有一个管理一堆列表的类,这意味着该类有3个ArrayList作为私有数据字段。
我希望能够将这些列表中对象的必要信息打印到String数组中。我希望能够对所有三个列表执行此操作,这意味着我需要三种方法。这些方法之间的唯一区别是,我想从对象中获取什么样的信息,当然还有数组的长度。
所以我的问题是:使用一个方法来确定我想要打印的内容是否更好,或者更好地使用三种不同的方法?
示例:
public String[] method(String type){
if(type.equals(type1)){
<print out necessary information from objects>
}
<two more methods...>
}
答案 0 :(得分:3)
方法应该完成一件事。如果你能以某种方式将它们结合起来。更好的实践是一种表示一个过程的方法,然后看看如果所有三个方法都是一个过程的一部分,那么这三个方法是否可以在一个通用方法中组合。
答案 1 :(得分:2)
正如类可以从泛化中受益一样,方法也是如此。 静态实用方法特别适合 generification。集合中的所有“算法”方法(例如 已经泛化了binarySearch和sort。
所以,如果可以做一个处理所有列表的通用方法,那就是我的选择。
我认为类型检测不是一个好主意。避免它的一种方法是,可以使不同列表的所有对象实现一个可用于打印它们的界面。
然后,您可以执行以下操作:
public String[] method(List<MyPrintableInterface> arg){...
答案 2 :(得分:0)
假设您有3个类A
,B
和C
,那么提供一个通用接口不是更好,例如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或类似的东西,因为你问(如果我正确理解)一些在现实生活中不应该发生的奇怪问题。