gpt4 book ai didi

java - 实例化一个类并让它完成工作的最佳方法是什么

转载 作者:行者123 更新时间:2023-12-02 07:59:25 25 4
gpt4 key购买 nike

我正在使用一个从注册表中获取参数的servlet,我目前正在做的是使用一个java类来处理这些参数并将它们存储在数据库中,但我感觉我使用这个类的方式是错的。我的代码是这样的:

UserRegister ureg=new UserRegister(name,age,sex,country);

就是这样,我在类中的构造函数将通过调用 UserRegister 类中的方法来完成从处理数据到将其存储在数据库中的整个工作。

这是正确的方法,还是有更好的方法?

编辑:我的 UserRegister 类只会对数据进行一些处理,并且它将调用业务层来存储数据,它本身不会与数据库交互。我要问的是,当你有一个类,在初始化后,只需要在其中执行一系列固定的步骤时,应遵循什么方法

最佳答案

my constructor in the class will do the entire job from processing the data to storing it in db

错了。切勿以这种方式编程。

在初始化了该类的基本必要性后,尽快退出 c'tor。

创建UserRegister对象的方法。使用该方法调用 ureg 对象上的方法。

例如:

public void processRequest(name, age, sex, country)
{
UserRegister ureg=new UserRegister(name,age,sex,country);
ureg.updateSomeFields();
ureg.doSomeBusinessLogic();
ureg.prepareDBData();
ureg.storeInDb();
}

这只是改进当前设计的示例。但是您还应该有一些实用程序类。 UserRegister 类应该具有代表用户的数据和行为,仅代表用户。

设计实用程序类,以便它们以某种格式获取输入,进行一些计算,然后将输出数据返回给其调用者。因此,当evr processRequest 方法需要完成一项工作时,它不会自行完成,而是调用另一个方法(它可能位于同一个类或其他类中)

编辑:

What I am asking is what approach is to be followed when you have a class where after initializing there are just a fixed series of steps to be performed inside it

这取决于这些步骤的性质。找出它们之间的关系。它们与用户相关吗?如果是,将它们作为方法放在 User 类中。如果没有,则将相关步骤组合在一起,创建一个具有全名含义的类并使用它。创建单独的类时,尝试以它们可以用作实用程序的方式进行设计,而不仅仅是用于当前目的。

关于java - 实例化一个类并让它完成工作的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9124484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com