16強.クラスとオブジェクト2(4)-単一モード

3971 ワード

  • Do it! Javaプログラミング入門オンラインコースに参加し、作成しました.
  • Section 1. Javaコア-オブジェクト向けプログラミング
  • 第16回「クラスとオブジェクト2(3)-静的変数」
  • 単品パターン
  • 単一モード
    これは、
  • の全システムに1つのインスタンスしか存在しない実装形態である.
  • javaにはグローバル変数がないため、静的変数が使用されます.
  • 生成者をプライベート化し、外部で使用するための開示された静的方法を提供する.
  • 以上のオブジェクトが生成された場合、通常は問題が発生するか、フレームワークで使用されます.
  • public class Company {
    	//Company 객체는 현재 클래스 내부에서 단 한 개만 존재함.
    	private static Company instance = new Company();
    	
    	//외부에서 constructor 호출을 제한
    	private Company(){}
    	
    	//외부에서 instance 객체를 사용할 수 있게 함
    	public static Company getInstance() {
    		if(instance == null) {
    			instance = new Company();
    		}
    		return instance;
    	}
    }
    これにより、プライベート作成者を作成し、クラスでオブジェクトをプライベート静的と宣言し、共通の静的メソッドを提供してオブジェクトを使用可能にすることができます.
    public class CompanyTest {
    	public static void main(String[] args) {
    		Company c1 = Company.getInstance();
    		Company c2 = new Company();	//error
    	}
    }
    main関数を持つ他のクラスでCompanyオブジェクトを使用する場合は、newジェネレータではなくgetInstance()メソッドを使用します.