java - OOP (Java) - 生成对象的最佳方式

标签 java oop

<分区>

如果我想生成一个具有随机值的简单对象的 Java 实例。

例如,对于类:

class Entity {
    int id;
}

我想添加生成函数,用 id 的随机值初始化一个新实例。

最好的 OOP 方法是什么?我考虑了 2 个选项:

  1. 在实体类中创建静态方法:

    class Entity {
      int id;
      public static Entity generate(){
          Entity e = new Entity ();
          int rand = MathUtil.generateRandomInt(); // method in util class 
                     in the project.
          e.setId(rand )
          return e;
     }
    }
    
  2. 创建 EntityGenerator 类:

     class EntityGenerator{
         public Entity generate(){
          Entity e = new Entity ();
          int rand = MathUtil.generateRandomInt(); // method in util class 
                     in the project.
          e.setId(rand);
          return e;
        }
    
    }
    

我犹豫什么是更好的选择。

最佳答案

您只需要创建一个类的对象。它会自动填充随机数..

import java.util.Random;

public class Entity {

  private int id;

  public Entity() {
    id = new Random().nextInt(100000);//set the upper limit, it generated numbers between 0 and 99999
  }

  public int getId() {
    return id;
  }

  public Entity setId(int id) {
    this.id = id;
    return this;
  }

}

或者你可以在类中创建一个静态的 Random() 对象。

public class Entity {
  private static Random r = new Random();
  private int id;

  public Entity() {
    id = r.nextInt(100000);//set the upper limit, it generated numbers between 0 and 99999
  }

  public int getId() {
    return id;
  }

  public Entity setId(int id) {
    this.id = id;
    return this;
  }

}

希望对您有所帮助。

关于java - OOP (Java) - 生成对象的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52759846/

相关文章:

python - 非常大的 __init__ 有什么问题吗?

regex - 在 Regex 上调用 Bool 无法按文档工作

java - 如何在 java.library.path 中添加 rxtxSerial?

java - 如何将结果与 Struts 2 中返回对象的操作的 return 语句相匹配?

java - 在 Android Studio 中添加新资源文件夹的正确方法?

java - Gradle 和 Spring-bootRun 找不到我的类(class)

Java MVC,添加屏幕使用什么模型?

python - 我应该以及如何在 python 中向 int 添加方法吗?

Java 多个子类,但类型不同

java - 从 JButton actionListener 更新 JLabel