如何通过java中的方法将对象从一个类传递到另一个类

时间:2017-02-13 09:36:31

标签: java

想象一下,我有一个类和许多方法。 在这些方法中,我正在创建对象。现在在许多方法中我一次又一次地创建相同的方法。所以我想停止这些自由对象的创建。

所以我使用的是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编码新手,谢谢你的回答。

2 个答案:

答案 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的实例。