这种类型的编程构造/设计/模式的名称?

时间:2014-01-10 21:20:52

标签: java design-patterns

请不要将此作为一个愚蠢的问题。这对某些人来说似乎非常明显,但对我来说并非如此。

我正在开发一个非常非常大的代码库。

我在很多课程中不断看到这种模式:

public class myClass {
    public myClass[] doGetMyClassList(final String someParam) {
        // some code
    }
}

该类包含一个返回数组或其自身列表的方法。

这有名字吗?我想知道这是否属于某种编程习惯。

2 个答案:

答案 0 :(得分:2)

虽然我找不到明确的设计模式或定义良好的界面。我在这里找到了一个平行的

同一类对象相关的任何其他用例也可以是并行的。 ex:带有friends方法的Person类,它返回一个Person对象数组。

泛型作为一种编程结构是表达这些关系的一个很好的工具(即方法)。自我约束的泛型是可行的,并且常见于许多地方:

import java.util.Arrays;

public class Grade < T extends Grade >{
private static final int MAX = 5 ;
private int grade;

public Grade(int grade) {
    this.grade = grade;
}

public T[] getGradesBelow() {
    Grade[] lower = new Grade[this.grade];

    for (int i = 0; i < this.grade; i++) {
        lower[i] = new Grade(i);
    }

    return (T[]) lower;
}

public String toString(){
    return grade + "";
}
public static void main(String[] args){
    Grade grade = new Grade(Grade.MAX);

    System.out.println(Arrays.toString(grade.getGradesBelow()));
}
}

答案 1 :(得分:2)

单独的类型签名不会告诉您它是什么模式,您还需要知道它与之合作以及如何使用它。

似乎它可能正在尝试执行the repository pattern,其中存储库类根据传入的参数获取其他类的集合。但是,您通常会将存储库设置为与类不同的类正在为你取材。当类只返回它自己的类型时,很难切换到另一个存储库进行测试或其他原因。