Java 使用一个静态方法访问最后一个类是一个好的实践吗?

Java 使用一个静态方法访问最后一个类是一个好的实践吗?,java,javafx,packages,Java,Javafx,Packages,我想知道这是否是一个好的做法和一个很好的方式做到这一点 我正在通过教程构建一个JavaFX应用程序。现在还没有持久性,所以我用一个静态方法创建了最后一个类,它构建了一个人员数组并返回它,这样我就可以用一些信息填充我的应用程序 在我的MainApp类构造函数中,我只需通过调用 Person[] people = PersonArray.getPeople(); 最后一节课是这样的: package com.myubercode.address.model; import java.time.L

我想知道这是否是一个好的做法和一个很好的方式做到这一点

我正在通过教程构建一个JavaFX应用程序。现在还没有持久性,所以我用一个静态方法创建了最后一个类,它构建了一个人员数组并返回它,这样我就可以用一些信息填充我的应用程序

在我的MainApp类构造函数中,我只需通过调用

Person[] people = PersonArray.getPeople();
最后一节课是这样的:

package com.myubercode.address.model;

import java.time.LocalDate;

/**
 * Created by klown on 4/9/17.
 */
public final class PersonArray {

    public static Person[] getPeople() {
        final Person[] PEOPLE = new Person[5];

        Person p1 = new Person("Hans", "Brix");
        p1.setBirthday(LocalDate.of(1999, 3, 22));
        p1.setStreet("Eldon Court");
        p1.setCity("Denver");
        p1.setPostalCode(80221);
        p1.setState("CO");
        PEOPLE[0] = p1;

        Person p2 = new Person("Aldus", "Eldon");
        p2.setBirthday(LocalDate.of(1976, 2, 02));
        p2.setStreet("Beaudry Dr");
        p2.setCity("Emeryville");
        p2.setPostalCode(98036);
        p2.setState("CA");
        PEOPLE[1] = p2;

        Person p3 = new Person("Juju", "Jones");
        p3.setBirthday(LocalDate.of(1969, 1, 12));
        p3.setStreet("Midland Rd");
        p3.setCity("San Leandro");
        p3.setPostalCode(93063);
        p3.setState("CA");
        PEOPLE[2] = p3;

        Person p4 = new Person("Jazelle", "Jackson");
        p4.setBirthday(LocalDate.of(1991, 5, 26));
        p4.setStreet("Hilary Ct");
        p4.setCity("Beaverton");
        p4.setPostalCode(98018);
        p4.setState("OR");
        PEOPLE[3] = p4;

        Person p5 = new Person("Elton", "Aldus");
        p5.setBirthday(LocalDate.of(1981, 12, 19));
        p5.setStreet("Oleander Circle");
        p5.setCity("Seattle");
        p5.setPostalCode(98107);
        p5.setState("WA");
        PEOPLE[4] = p5;

        return PEOPLE;
    }
}
因为不需要实例化类和浪费内存,这是一个好的实践吗?
谢谢

我将把它作为一个实例,并在主应用程序中使用它,谢谢你的输入。

可能不会(尽管这个问题对于这个论坛来说可能过于基于观点)。在某种程度上,您可能希望添加一个真正的持久性机制,现在它充当了一个占位符。此时静态数据访问对象会出现问题,因为您将无法控制其生命周期,因此很难控制数据库资源的创建和释放等。因此,现在最好定义一个类并使方法成为实例方法。创建一个实例并将其传递给控制器(或任何您需要的地方)。如果您编写
newpersonarray().getPeople()
,它不需要是静态的。然后您可以在不同的测试中覆盖它。