シングルループモード
シングルループモードとは?
まず、単一周モードとは、どのクラス(オブジェクト)も1つしか存在しない場合に使用されます.それは主に互いに資源を共有するために用いられ、現実世界ではプリンタに相当し、実際のプログラミングでは主にTCP Socket通信でサーバに接続されたconnectオブジェクトに用いられる.
コードを見てみましょう
シングルケースパッケージ(SocketClient.java)
package com.company.design.singleton;
public class SocketClient {
private static SocketClient socketClient = null;
private SocketClient(){
}
public static SocketClient getInstance(){
if(socketClient == null){
socketClient = new SocketClient();
}
return socketClient;
}
public void connect(){
System.out.println("connect");
}
}
第一に、privateによってエラージェネレータをブロックします.後の値がnullの場合、インスタンスが作成され、すでに存在する場合はその値が返されます.要するに、オブジェクトは1つしかなく、静的とともに使用されます.シングルケースパッケージ(Aclass.java)
package com.company.design.singleton;
public class AClazz {
private SocketClient socketClient;
public AClazz (){
this.socketClient = SocketClient.getInstance();
}
public SocketClient getSocketClient(){
return this.socketClient;
}
}
シングルケースパッケージ(Bclass.java)package com.company.design.singleton;
public class BClazz {
private SocketClient socketClient;
public BClazz () {
this.socketClient = SocketClient.getInstance();
}
public SocketClient getSocketClient(){
return this.socketClient;
}
}
ここにはオブジェクトを使用するクラスが2つあります.このときSocketClientからgetInstance()メソッドで取得すればよい.これにより、ACLSとBClassの値は同じ値を伝達する.つまり、2つのクラスは同じオブジェクトを使用します.設計パッケージ(Main.java)
package com.company.design;
import com.company.design.singleton.AClazz;
import com.company.design.singleton.BClazz;
import com.company.design.singleton.SocketClient;
public class Main {
public static void main(String[] args) {
AClazz aClazz = new AClazz();
BClazz bClazz = new BClazz();
SocketClient aClient = aClazz.getSocketClient();
SocketClient bClient = bClazz.getSocketClient();
System.out.println("두개의 객체가 동일한가?");
System.out.println(aClient.equals(bClient));
}
}
次に、Mainクラスの2つのクラスのインスタンスが同じかどうかをequalsで比較します.2つのオブジェクトは同じですか?
true
true値が現れることを決定できます.
今日はここまで。
今日は、オブジェクトが1つしかない場合に使用するデザインパターンを簡単に理解しました.設計モード構築構造には時間がかかるが,オブジェクト向けの最適化プログラミングであるため,優れた設計方式であるようである.
Reference
この問題について(シングルループモード), 我々は、より多くの情報をここで見つけました https://velog.io/@dlwpwns/싱글턴-패턴テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol