想象一下,我有一个类和许多方法。 在这些方法中,我正在创建对象。现在在许多方法中我一次又一次地创建相同的方法。所以我想停止这些自由对象的创建。
所以我使用的是Utility类,我可以在其中创建对象,我可以将对象传递给特定的方法。
现在如何将对象作为参数传递以及如何在方法中使用该对象?
示例代码
public ProfileImpl(String profileId) {
Utilities.dbConnect();
if (dbClient.contains(profileId)) {
this.profile = dbClient.find(TOProfile.class, profileId);
}
}
@Override
public void setProfile(TOProfile profile) {
CouchDbClient dbClient = new CouchDbClient();
profile.set_rev(dbClient.update(profile).getRev());
this.profile = profile;
}
@Override
public void getProfile(TOProfile profile) {
CouchDbClient dbClient = new CouchDbClient();
profile.set_rev(dbClient.update(profile).getRev());
this.profile = profile;
}
您可以从上面的代码中看到dbclient一次又一次地创建。
Utility.java
public lass Utilities {
public static Object dbConnect(Object object) {
CouchDbClient dbClient = new CouchDbClient();
return dbClient;
}
}
现在我想传递这个对象并使用它。 我是java编码新手,谢谢你的回答。
答案 0 :(得分:2)
您的Utilities类应该看起来像这样
public class Utilities {
private static CouchDbClient dbClient;
public static CouchDbClient dbConnect() {
if(dbClient == null) {
dbClient = new CouchDbClient();
}
return dbClient;
}
}
然后,您可以根据需要多次调用dbConnect
方法。
@Override
public void setProfile(TOProfile profile) {
CouchDbClient dbClient = Utilities.dbConnect();
profile.set_rev(dbClient.update(profile).getRev());
this.profile = profile;
}
此处您的CouchDbClient对象只创建一次,可以多次使用。
答案 1 :(得分:1)
您所谈论的内容通常称为Factory method pattern
简而言之,首先您要定义interface
方法createCouchDbClient
并返回CouchDbClient
,然后您将实现此界面,创建class
使用方法createCouchDbClient
真正创建对象CouchDbClient
的实例。