シングルループモード


シングルループモードとは?


まず、単一周モードとは、どのクラス(オブジェクト)も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つしかない場合に使用するデザインパターンを簡単に理解しました.設計モード構築構造には時間がかかるが,オブジェクト向けの最適化プログラミングであるため,優れた設計方式であるようである.