2013년 07월10일 사내 스터디가 부활 하였다. 두둥~
2번째 용수철 스터디가 시작 되었다.
처음에는 굿택과 둘이서 하려고 하였다가 2명을 더 추가하여 소스정예로 하게 되었다.^-^good~
이번 사내 스터디의 내용은 디자인 패턴이다!!!
개발코드를 중심으로 하는 스터디 이며, 매우 성실하게!! 해야 할 것이다.
이제 주저리는 그만하고..본론으로 패턴에 대해 알아보도록 하겠다^-^
part 1. singleton pattern
싱글톤 패턴!!~
싱글+톤
마치..싱글 : 혼자, 하나 인 느낌
톤 : 스켈레톤 할 때 뼈대의 느낌 인 듯 하다.
그래서 싱글톤은 하나의 뼈대?? 라고 생각하면 될 것 같다.(저만의 생각입져..ㄷㄷ)
즉, java에서는 oop 즉 객제지향으로 봤을 때 싱글톤의 하나의 뼈대란 하나의 객체로 볼 수 있다.
매번 객체를 생성하는 것이 아니라 하나 만들어놓고 쭉~~~~쓴다는 것이다.
보통 데이터베이스를 접근 할 때 매번 접근 하는 것이 아니라 하나의 dao(data access object)를 만들어두고
접근을 계속하게 되면 매번 connection을 하지 않아도 된다. 즉, 그만큼 비용이 절감 될 것이다.
이론은 이제 그만~~~몸소 체험을 해보자!! 코드로 말하자!!
디자인 패턴! 잡으로 가보자잉~~
소스의 패키지는 아래와 같다.
Junit으로 동작을 한다.
JUNIT 테스트 코드
package kr.pe.acet.singleton;
import static org.junit.Assert.*;
import kr.pe.acet.singleton.SingletonPattern;
import org.junit.Test;
public class SingletonPatternTest {
@Test
public void singleTonTest() {
// set variable
SingletonPattern mySingleton = null, yourSingleton=null;
// get the object
mySingleton = SingletonPattern.getInstance();
yourSingleton = SingletonPattern.getInstance();
// confirm the object
assertEquals(mySingleton.print("Junit Test!!"), "Junit Test!!");
assertEquals(yourSingleton.print("SingleTone Test!!"), "SingleTone Test!!");
assertEquals("OK!!",yourSingleton, mySingleton);
}
}
assertEquals("OK!!",yourSingleton, mySingleton);
마지막 라인처럼 객체가 서로 같은지 비교 한다.
package kr.pe.acet.singleton;
/**
* @author acet
*
*/
public class SingletonPattern {
private static SingletonPattern singleton;
private SingletonPattern(){
}
public static SingletonPattern getInstance(){
if(singleton == null){
synchronized(SingletonPattern.class){
if(singleton == null)
singleton = new SingletonPattern();
}
}
return singleton;
}
public String print(String str){
System.out.println("출력 : "+str);
return str;
}
// private volatile static ~~
// 쓰레드는
}
결과
출력 : Junit Test!!
출력 : SingleTone Test!!
2013/07/21 - [Architecture/DesignPattern] - [첫번째 스터디] abstractFactory 패턴
'역량 UP! > DesignPattern' 카테고리의 다른 글
| [DesignPattern] command pattern (0) | 2013.12.03 |
|---|---|
| [DesignPattern] observer pattern (0) | 2013.11.24 |
| [DesignPattern] Interpreter pattern (0) | 2013.11.24 |
| [첫번째 스터디] abstractFactory 패턴 (0) | 2013.07.21 |
| [DesignPattern] Facade Pattern-#1_I'm unloading the luggage in my heart.. (0) | 2013.01.16 |