mvp 패턴에 대해 공부하다보니 싱글턴 패턴과 RxJava가 나왔다.
일단 싱글턴패턴 공부하고
RxJava 공부하고 mvp 패턴 공부해야지......
싱글턴패턴이란..
public class Singleton {
// private이라 외부에서 접근못하고 static 이라 클래스가 로드(프로그램 실행)되면서 변수생성 final이라 변경 안됨
private static final Singleton gInstance = new Singleton();
public String strHakBun = "201000000";
// 생성자 - private이라 접근 못함
private Singleton() {
}
// 우리가 제공해주는 이 클래스의 인스턴스를 사용하는 유일한 방법
public static Singleton getInstance() {
return gInstance;
}
}
// 외부클래스에서 접근 가능!!
public class Main {
public static void main(String[] args) {
System.out.println( Singleton.getInstance().strHakBun );
}
}
객체 - 속성과 기능을 갖춘 것 - 자동차
클래스 - 속성과 기능을 정의한 것 - 자동차의 설계도
인스턴스 - 속성과 기능을 가진 것 중 실제 하는 것 - 자동차 하나하나 완성품
싱글톤 패턴을 통해서 하나의 인스턴스만 생성하도록 구현 할 수 있다.
싱글톤 패턴 - 하나만 생성해야할 객체를 위한 패턴
요구 사항 - 개발 중이 시스템에서 스피커에 접근 할 수 있는 클래스를 만들어 주세요
public class SystemSpeaker {
static private SystemSpeaker instance;
private int volume;
// 외부에서 생성자 사용못하게..
private SystemSpeaker() {
volume = 5;
}
public static SystemSpeaker getInstance() {
if ( instance == null ) {
instance = new SystemSpeaker();
}
return instance;
}
public int getVolume() {
return volume;
}
public int setVolume(int volume) {
this.volume = volume;
}
}
public class Main {
public static void main(String[] args) {
SystemSpeaker speaker1 = SystemSpeaker.getInstance();
SystemSpeaker speaker2 = SystemSpeaker.getInstance();
System.out.println( speaker1.getVolume() );
System.out.println( speaker2.getVolume() );
speaker1.setVolume(11);
System.out.println( speaker1.getVolume() );
System.out.println( speaker2.getVolume() );
speaker2.setVolume(22);
System.out.println( speaker1.getVolume() );
System.out.println( speaker2.getVolume() );
}
}
'# 02 > Java' 카테고리의 다른 글
[Java] 인터페이스의 문법 구성과 추상 클래스 (0) | 2019.08.19 |
---|---|
[Java] 인터페이스의 기본과 그 의미 (0) | 2019.08.19 |
[Java] 제네릭 2 (0) | 2019.07.09 |
[Java] 제네릭 1 (0) | 2019.07.09 |
[Java] Java설치 및 환경변수 설정 (JDK 설치 방법) (0) | 2019.07.01 |