2017-02-13 6 views
-2

私はクラスとその中に多くのメソッドがあるとします。 これらのメソッドの中で私はオブジェクトを作成しています。今私は同じメソッドを何度も繰り返し作成しています。だから私はこれらの自由なオブジェクトの作成を止めたいと思っています。Javaのメソッドを使用してあるクラスから別のクラスにオブジェクトを渡す方法

私はオブジェクトを作成することができるユーティリティクラスを使用しており、オブジェクトを特定のメソッドに渡すことができます。

これで、パラメータとしてオブジェクトを渡す方法と、そのオブジェクトをメソッドでどのように使用するのですか?あなたは、オブジェクトのdbclient上記のコードから見ることができます

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; 
} 

サンプルコードは、何度も何度も作成されます。

Utility.java

public lass Utilities { 
    public static Object dbConnect(Object object) { 
     CouchDbClient dbClient = new CouchDbClient(); 
     return dbClient; 
    } 
} 

今私は、このオブジェクトを渡すと、それを使用したいです。 私はJavaコーディングが初めてです。あなたの答えに感謝します。

+0

本当のコードを教えていただけますか?本当にうまくいくか?あなたのクラスに 'setProfile'が2回あるとは思えず、' setProfile'メソッドとまったく同じ 'getProfile'メソッドを持つのはあまり意味がありません。 – Tom

+0

ええ、私は同じオブジェクトがmultiplr回作成されることを示すためにそれをコピーしました。パラメータとしてオブジェクトを渡す方法。それは私の質問です。複数のオブジェクトの作成を避けることができます。 –

+0

CouchDbClientをsetProfileメソッドに渡したいのですか?あなたの質問は少し不明です。 –

答えて

2

あなたのユーティリティクラスは、この

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

と呼ばれ、最初にあなたはCouchDbClientを返す方法createCouchDbClientinterfaceを定義します、その後、あなたはclassを作成し、このインタフェースを実装します方法createCouchDbClientで実際にオブジェクトCouchDbClientのインスタンスを作成します。

関連する問題