728x90
반응형
SMALL
자바 프로그래밍을 하다보면..싱글턴 패턴을 이용할 때가 많다.
인스턴스를 하나만 이용하고 재사용을 함으로써 매번 객체를 생성하는 불필요함을 막는 패턴인데,
자바 프로젝트마다 대부분 이용을 하게되는 것 같다.
자바 뿐만이 아닌 Objective-C 에서도 사용했었고..다른 언어에서도 많이 쓰이는 패턴이다.
getInstance 메소드 예)
public class TestClass {
private static TestClass instance;
public static TestClass getInstance() { //getInstance 메소드는 static
if (instance == null) {
instance = new TestClass();
}
return instance;
}
}
안드로이드에서는..요런식으로 나는 많이 쓴다.
public Class MainActivity extends BasicActivity {
private MainActivity mInstance;
public static MainActivity getInstance() {
return mInstance;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mInstance = this;
}
}
동기화를 보장하지 않으면..흔하진 않으나 많은 스레드에서 접근시 인스턴스가 2개가 생성되어 쪼개지는 경우도 있다고 한다. synchronized를 이용하여 동기화를 걸어주는것이 안정적인데, 상황에 따라서 적용 여부는 달라질듯 하다.
public class TestClass {
private static TestClass instance;
public synchronized static TestClass getInstance() {
//synchronized를 걸어준다. 메소드, 구문, 변수 등 적용 방법은 다양하다.
if (instance == null) {
instance = new TestClass();
}
return instance;
}
}
728x90
반응형
LIST
'Java' 카테고리의 다른 글
Map을 Json으로 - Gson (0) | 2020.11.07 |
---|---|
java byte order 변경 메소드 (0) | 2020.11.07 |
Eclipse Code template 적용하기 (0) | 2020.11.07 |
Java cacerts 인증서 추가(keytool 이용) (0) | 2020.11.06 |
JDK 환경변수 설정 (0) | 2020.11.04 |