Composite 패턴이란? 단일객체와 복합객체를 동일시해서 재귀적인 구조를 만들기 위한 패턴.트리구조의 데이터를 구현할 때 유용 - 위 class diagram을 컴퓨터 파일 시스템에 빗대어 설명해 보자. 파일 시스템은 file과 directory로 이루어져 있고 tree 형태이다. tree 구조의 특성상 하나의 node는 자식을 가질 수 있고, 그 자식이 다시 자식을 가질 수 있다. 자식을 가지는 node가 directory(Composite)이며 자식은 directory 또는 file 이 될 수 있다. 자식을 가지지 않는 node는 file(leaf) 이다. - File = Leaf(내용물) = 단일객체 - Directory = Composite(복합물) = 복합객체 예제 // 사용자가 file과 ..
Singleton 패턴이란? 하나의 instance만 생성하는 것을 보장해 주는 패턴어떠한 instance를 사용할 때 매번 새로운 instance를 생성하는게 아니라, 하나의 instance만 생성하여 동일 instance를 계속 사용하는 방법이다.주로 설정관리를 위한 manager, controller 같은 애들은 하나의 instance를 생성하여 사용하므로 singleton 패턴을 이용한다 다양한 구현 방법 A) class load 시점에 instnace 생성 public class SingletonA { // JVM에 의해 SingletonA class가 load 될 때 instance 생성. private static SingletonA instance = new SingletonA(); pub..
정의 수많은 객체들이 서로 복잡하게 상호작용 하는 경우, 하나의 중재자 클래스를 통해서만 간접적으로 communication 하게 만드는 pattern. 객체들의 M:N 관계를 Mediator를 통해 1:N 관계로 만들어 줌. concreateCollegue1, concreateCollegue2, 3, 4 등의 수많은 객체가 서로 참조하며 복잡하게 상호작용 하는 상황일 경우, 위 diagram 처럼 Mediator 클래스를 통해 각 객체가 간접적으로 comunication 할 수 있다.이는 객체들간의 coupling(결합도)를 줄임으로써 재사용성을 높일 수 있고, 객체간의 유지보수에 용이하다. 예제book, view, search 3개의 Button과 상태를 표시하는 Label 로 구성되는 Java AW..
정의기존 상속구조에서 부모 코드를 변경하지 않고, 런타임에 동적으로 기능을 추가하기 위한 pattern 예제 문제상황 먼저 coffee 가게에서 각 음료의 가격을 알 수 있는 system을 개발한다고 할 때,일반적인 설계구조를 본 뒤, Decorator pattern을 적용하여 개선해 보자. 1. HouseBlend, DarkRoast, Decaf, Espresso 의 가격을 알 수 있는 class 설계 2. 각 음료에 mocha, milk, wheeping 등 재료가 추가 될 수 있으므로 상위 클래스에 관련 기능 추가. 위 설계의 문제점?재료가 추가되면 부모클래스(Beverage)에 method가 계속 추가됨.재료가 변경되거나, 가격이 변경되면 부모클래스(Beverage) 수정 필요함.절대 사용하지 않..
1. rxvt 로 실행Cygwin.bat 파일 수정@echo off C:chdir C:\cyg\bin//아래부분 추가rxvt -display :0 -fn "Lucida Console-14" -tn rxvt-cygwin-native -e /bin/bash --login 2. 한글입력설정홈디렉토리에 .inputrcc 파일 수정//아래 추가set meta-flag onset convert-meta offset output-meta on 3. cygwin 한글 표시 설정env 로 LANG 설정 값 확인vi .bashrcLANG=ko_KR.UTF-8 로 설정cygwin 윈도우 창의 option menu -> text 에서 Locale : ko_KR, Character set : UTF-8 로 변경* vi 편집기에..