设计问题:带有单一方法的 Java 类好吗?

snk*_*snk 5 java class

我需要以下功能

Given two sorted lists, merge them
Run Code Online (Sandbox Code Playgroud)

我有这个骨架 Java 代码:

public class MergeLists{
   public List merge(List l1, List l2){
      List l3;
      // merge l1, l2 in to l3
      return l3;
   }

   public static void main(){
      // populate list1 and list2
      MergeLists ml = new MergeLists();
      List l3 = ml.merge(l1,l2);
   }
}
Run Code Online (Sandbox Code Playgroud)

这个单一的方法类是正确的方法吗?我觉得几乎是空的班级正在盯着我说这是糟糕的设计。我最初将 List L3 作为 MergeLists 的私有成员,但后来我想,merge(l1,l2) 可以用同一个对象多次调用,这要求 l3 是 merge(l1,l2) 的本地成员。我读到使用静态方法对于代码可重用性来说更糟糕。请指教。谢谢你。

Jus*_*ner 3

在这种情况下,由于您没有真正的成员数据,因此使单个方法成为类内的静态方法将是适当的设计选择:

public class ListUtils
{
    public static List Merge(List l1, Listl2)
    {
        List l3 = new List();
        // merge l1 and l3 into l3
        return l3;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用代码,而无需创建类的实例(特别是当它没有任何用途时):

List l1 = new List();
List l2 = new List();
// Fill the lists

List merged = ListUtils.Merge(l1, l2);
Run Code Online (Sandbox Code Playgroud)