Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中创建对象的设计问题_Java_Oop_Design Patterns - Fatal编程技术网

Java中创建对象的设计问题

Java中创建对象的设计问题,java,oop,design-patterns,Java,Oop,Design Patterns,我正在开发一个应用程序,其中用户发送短信以获取任何软件包 在我的程序中,当我收到用户请求时,我必须创建Subscriber对象。要初始化订阅服务器对象,我必须查询后端数据库,然后在节点中设置订阅服务器对象的属性 请对此提出建议,我应该使用Factory模式还是Builder?或者有什么好的选择?对于在工厂类中放置查询数据库和调用XMLRPC的代码有什么建议 我的班级看起来像下面 public class Subscriber { private String subno; private St

我正在开发一个应用程序,其中用户发送短信以获取任何软件包

在我的程序中,当我收到用户请求时,我必须创建
Subscriber
对象。要初始化订阅服务器对象,我必须查询后端数据库,然后在节点中设置订阅服务器对象的属性

请对此提出建议,我应该使用Factory模式还是Builder?或者有什么好的选择?对于在工厂类中放置查询数据库和调用XMLRPC的代码有什么建议

我的班级看起来像下面

public class Subscriber {

private String subno;
private String subPackageType;
private String subTariff;
private String subRequest;
private boolean isTransferable;
}
现在,通过发送XMLRPC命令,我从sms获得subno,subRequest,从数据库获得subpackettype,从节点中获得subTariff

我有更多的属性,但我只是提到一些提供概念

问候,

imran

无论如何,首先使用factory是一种很好的做法。 其次,在您的例子中,我认为您应该从DB中检索数据,然后创建Subscriber对象。在这种情况下,您实际上是在创建期间将数据从DB传递到订阅服务器对象。若由于其他原因,您不能这样做,只需将订阅者设置为bean,即提供适当的setter。在这种情况下,您可以创建对象,然后查询数据库,然后通过调用适当的setter设置所有需要的属性

在这里,构建器模式似乎帮不了你多少忙

停止思考“我应该使用哪种模式”,就好像任何应用程序都有一个单一的模式,就是这样,仅仅应用一个特定的模式就会神秘地修复这个世界

开始写作,一种模式就会出现。最终,有了经验,这将成为第二天性。
不要试图强迫事情进入一种模式,让它成长和成熟。

有不止一种类型的订阅者吗?有不同类型的请求吗?请告诉我们更多关于您最初的设计。您很难提供足够的信息让我们做出明智的判断。为什么不试试不同的选择,自己决定哪一个最好?我已经用更多的输入编辑了我的帖子。如果我理解正确,我将调用SubscriberFactory.createSubscriber,我在XMLRPC上查询DB和IN节点的代码将在factory类中。对于将DB和XMLRPC代码放入factory类,您有何建议?