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 |