[Javaデザインモード]モノトーンモード


モノトーンモード(Singleton Pattern)は、インスタンスを1つ作成するだけで使用できるモードです.
public class Student {

	private static Student student = null; 
	
	public static Student getInstance() {
		if (student == null) {
			student = new Student();
		}
		return student;
	}
	
	public void printHello() {
		System.out.println("");
	}
}
Studioクラスが作成されました.
インスタンスを1つだけ作成するには、ジェネレータの機能をブロックする必要があります.
このため,アクセス制限者をプライベートと宣言し,生成者の機能を阻止した.
次に、インスタンスを作成するgetInstaneメソッドを作成します.
インスタンスが既存のインスタンスに存在する場合、このメソッドは元のインスタンスを返し、存在しない場合はインスタンスを作成して返します.
2つ以上のインスタンスは絶対に生成できません.
2つのStudioクラス、Studioクラスを作成し、同じかどうかを比較するインスタンスを作成します.
public class StudentA {

	private Student studentA;
	
	public StudentA() {
		this.studentA = Student.getInstance();
	}
	
	public Student returnStudentA() {
		return studentA;
	}
}

public class StudentB {

	private Student StudentB;
	
	public StudentB() {
		this.StudentB = Student.getInstance();
	}
	
	public Student returnStudentA() {
		return StudentB;
	}
}
以上のように、StudentA、StudentBクラスが作成され、それぞれのインスタンスがモノトーンモードで作成されます.
次に、プライマリクラスを作成し、両者を比較します.
public class SingletonMain {

	public static void main(String[] args) {
		StudentA studentA = new StudentA();
		StudentB studentB = new StudentB();
		
		System.out.println(studentA.returnStudentA() == studentB.returnStudentA());
	}
}

結果はtrueです.