如何确定何时使用静态方法而不是实例方法更方便?封装是更好的选择吗?

问题描述 投票:0回答:1

我基本上正在编写对字符串列表执行工作的静态方法,但我无法完全确定创建实例变量并在内部完成所有工作是否会更好。 如果我的问题不清楚:做出这个决定时需要考虑什么? 如果封装始终是首选,那么我想我会更好地选择实例变量和方法。

方法:

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;
}
java static instance encapsulation instance-variables
1个回答
0
投票

我在这里发现了与您类似的问题:何时使用静态方法

但我也想给你我的意见(因为最终这是你的决定,中小型项目不会有任何重大的性能问题)。

就您而言,您想向列表添加一些功能。这是否是适用于所有列表或专门针对一种列表类型的通用解决方案(最有可能描述为 UtilClass)。 在第一种情况下,您还可以考虑扩展 java.util.List 或仅使用静态解决方案。 在第二种情况下,您应该使用自己的扩展 java.util.List 的类型。

© www.soinside.com 2019 - 2024. All rights reserved.