[JAVA] 디자인 패턴

seonjeong·2023년 2월 8일
0

Java

목록 보기
15/26
post-thumbnail

싱글턴 패턴 (Singleton Pattern)

  • Singleton Class
// Singleton Class
public class Singleton {
	
    private static Singleton single = null;	// 정적 참조변수
    public int number;	
    public String name;
    
    private Singleton() {	// private 생성자. 외부에서 생성 불가
    }
    
    // 객체 반환 메서드
    public static Singleton getInstance() {
    	if(single == null) {
        	single = new Singleton();
        }
        return single;
    }

}
  • other classes
// MyClass
import single.Singleton;

public class MyClass {
	private int numner;
    
    public MyClass() {
    	number = 1234;
    }
    
    public void myMethod() {
    	Singleton si = Singleton.getInstance();
        si.number = number;
    }
}

// YouClass
import single.Singleton;

public class YouClass {
	private String name;
    
    public YouClass() {
    	name = "아이유";
    }
    
    public void youMethod() {
    	Singleton si = Singleton.getInstance();
        si.name = name;
    }
}

// WeClass
import single.Singleton;

public class WeClass {
	private int numner;
    private String name;
    
    public WeClass() {
    }
    
    public void weMethod() {
    	Singleton si = Singleton.getInstance();
        number = si.number;
        name = si.name;
    }
    
    @Override
	public String toString() {
		return "WeClass [number=" + number + ", name=" + name + "]";
	}
}
  • Main Class
import cls.WeClass;
import cls.MyClass;
import cls.YouClass;

public class MainClass {
	public static void main(String[] args) {
    	MyClass mycls = new MyClass();
        YouClass youcls = new YouClass();
        WeClass wecls = new WeClass();
        
        mycls.myMethod();
        youcls.youMethod();
        wecls.weMethod();
        
        System.out.println(wecls.toString());
    }
}

// console
// WeClass [number=1234, name=아이유]
profile
🦋개발 공부 기록🦋

0개의 댓글

관련 채용 정보