getInstance()メソッドを使用する理由と役割(回転)

2145 ワード

public static DBConnect instance;
 public static DBConnect getInstance(){
  if(instance == null){
   instance = new DBconnect();
  }
  return instance;
 }

単一のモードは、一般的に比較的大きく、複雑なオブジェクトに使用され、一度だけ初期化され、newでオブジェクトをインスタンス化できないようにprivateの構造関数があるはずです.getInstanceメソッドを呼び出してオブジェクトを得るしかありません.getInstanceは、呼び出すたびに同じオブジェクトを返すことを保証します.
詳細に説明します.オブジェクトのインスタンス化方法も多く、最も一般的な方法はnewを直接使用することです.これは最も一般的で、単一インスタンスモード、階層間呼び出しなど、他の必要性を考慮すると*直接newを使うとうまくいかないので、間接的にnew、すなわちgetInstanceメソッドを使う必要があります.これは、メソッド名だけでなく、設計方式の代表です.
  • newの使用:Object_object=new Object()の場合、2番目のObjectの存在を知る必要がありますが、2番目のObjectも現在のアプリケーションドメインで直接呼び出すことができます.
  • GetInstanceの使用:
  • は、プライマリの開始時に呼び出され、staticのオブジェクトを返します.このオブジェクトは、メモリに参照が保持されます.すなわち、メモリに静的メソッドと変数を格納するための領域があります.
  • .
  • は直接使用でき、呼び出しは同じオブジェクトを複数回返す.


  • 3.両者の区別対照:
  • の大部分の分類(非抽象クラス/インタフェース/constructorを遮蔽したクラス)はnewを使用することができ、newは新しいインスタンスオブジェクトを生産するか、スタック上でオブジェクトを宣言することによって、各部分の呼び出し
  • である.
  • は新しいオブジェクトを使用しています.
  • getInstanceは少数分類ならではの方法であり,それぞれの実現も異なる.
  • getInstanceは、単一のインスタンスモード(クラスが1つしかないことを保証し、アクセスポイントを1つ提供する)のクラスでよく見られ、一意のインスタンスを生成するために使用され、getInstanceはstaticであることが多い.
  • (1)オブジェクトが使用される前にgetInstanceによって得られ、自分で定義する必要はなく、使い終わった後にdeleteは必要ありません.

  • (2)newは必ず新しいオブジェクトを生成し、メモリを割り当てなければならない.getInstance()は再作成する必要はありません.既存のリファレンスを使用することができます.これはnewよりも効率的です.
  • (3)newは作成後、2回のみ使用できますが、getInstance()はスタック領域にまたがって使用したり、リモート領域にまたがって使用したりできます.したがってgetInstance()は通常static静的インスタンスメソッドを作成します.
  • まとめ:
  • getInstanceこの方法は単例モードで多く用いられており、メモリの無駄を避けるためにクラスをインスタンス化する必要があるまで実例化されないため、getInstanceでオブジェクトを取得し、
  • その他の場合、すなわち簡便化のため、プログラムをインスタンス化対象としないために、毎回newを用いずにinstanceメソッドを索的に提供し、このクラスを実行する必要がない
  • .
  • を初期化し、システムリソースを無駄にしないようにします.シングル・モードでは、データの競合を防止し、メモリ容量を節約できます.