Decoration Pattern이란?

객체에 추가 요소를 동적으로 더할 수 있다. 데코레이터를 사용하면 서브 클래스를 만드는 경우에 비해 훨씬 유연하게 기능을 확장할 수 있다.


아래는 Beverage 클래스, CondimentDecorator 추상 데코레이터와 이를 상속받은 Soy, Whip, Mocha 및 SteamMilk 데코레이터를 보여준다. StarbuzzCoffee 클래스에서 이들을 연동한다.



이클립스 테마 변경

이클립스 폰트(Verdana) 바꾸기

Observer Pattern이란?

한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(one-to-many) 의존성을 정의


아래는 WeatherData가 Subject 객체이며 CurrentConditionDisplay 및 HeatIndexDisplay가 Observer 객체이다. Display 방식도 변화할 수 있기 때문에 Interface로 뺐다. WeatherStation 클래스에서 Subejct 및 Observer 객체를 연동한다.



Strategy Pattern이란?

알고리즘군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 한다. 스트래티지를 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있다.


아래는 Duck 클라이언트가 캡슐화된 FlyBehavior와 QuackBehavior 알고리즘군을 갖는 클래스 다이어그램이다.



기존 코드에서 다이어그램을 생성해내는 이클립스 플러그인을 찾았다.


eUML2가 유명한거 같은데 이클립스 Kepler를 지원하지 않았다.


그래서 겨우 찾은게 ObjectAid!! 잘 동작한다.

Kepler에선 JAVA8을 적용하기 위해 패치가 필요하다.

아래 링크에 패치하는 방법이 설명되어 있다.

JDT/Eclipse Java 8 Support For Kepler


잘 적용되었는지 Java8 부터 지원하는 람다식(Lambda Expression)을 포함한 코드로 테스트해봅시다.

import java.util.Arrays;
import java.util.List;


public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		List  list = Arrays.asList ( "Groovy", "Java", "Scala");
		list.sort((s1, s2) -> s1.length() - s2.length());
		list.forEach(s -> System.out.println (s));
	}
}



libcurl.dll 다운로드 사이트

libcurl을 검색한 후에 'Download libcurl.dll (all versions) only' 링크를 통해 dll만 다운 받아서 SSL 폴더 내의 dll을 C:\Windows\SysWOW64 폴더에 복사


액티비티 다이어그램, 시퀀스 다이어그램이 무엇인지 잘 알고 사용하면 유용하겠다.

회사에서 SW하는 많은 사람들이 다이어그램을 그리지만 100% 제대로 알고 그리는 사람은 거의 없는 듯.

아래는 다이어그램에 대해 잘 설명된 페이지.


다이어그램 설명

이클립스에 SVN 플러그인 설치

+ Recent posts