[Javaデザインモード]モノトーンモード
7609 ワード
モノトーンモード(Singleton Pattern)は、インスタンスを1つ作成するだけで使用できるモードです.
インスタンスを1つだけ作成するには、ジェネレータの機能をブロックする必要があります.
このため,アクセス制限者をプライベートと宣言し,生成者の機能を阻止した.
次に、インスタンスを作成するgetInstaneメソッドを作成します.
インスタンスが既存のインスタンスに存在する場合、このメソッドは元のインスタンスを返し、存在しない場合はインスタンスを作成して返します.
2つ以上のインスタンスは絶対に生成できません.
2つのStudioクラス、Studioクラスを作成し、同じかどうかを比較するインスタンスを作成します.
次に、プライマリクラスを作成し、両者を比較します.
結果はtrueです.
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です.
Reference
この問題について([Javaデザインモード]モノトーンモード), 我々は、より多くの情報をここで見つけました https://velog.io/@ctp102/Java-디자인패턴-싱글톤-패턴テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol