我基本上正在编写对字符串列表执行工作的静态方法,但我无法完全确定创建实例变量并在内部完成所有工作是否会更好。 如果我的问题不清楚:做出这个决定时需要考虑什么? 如果封装始终是首选,那么我想我会更好地选择实例变量和方法。
方法:
public static List<String> split(String string)
{
List<String> list = new ArrayList<>();
...
return list;
}
public static int count(List<String> stringBlocks)
{
...
return counter;
}
private static List<String> createList(List<String> stringBlocks, int currentCap, int lastCap)
{
List<String> list = new ArrayList<>();
...
return list;
}
public static List<List<String>> makeJoinedLists(List<String> stringBlocks)
{
List<List<String>> lists = new ArrayList<>();
...
return lists;
}
public static List<String> performWork(List<List<String>> lists)
{
List<List<String>> lists = new ArrayList<>();
...
return lists;
}
我在这里发现了与您类似的问题:何时使用静态方法
但我也想给你我的意见(因为最终这是你的决定,中小型项目不会有任何重大的性能问题)。
就您而言,您想向列表添加一些功能。这是否是适用于所有列表或专门针对一种列表类型的通用解决方案(最有可能描述为 UtilClass)。 在第一种情况下,您还可以考虑扩展 java.util.List 或仅使用静态解决方案。 在第二种情况下,您应该使用自己的扩展 java.util.List 的类型。