2011년 5월 25일 수요일

Rogue Tile(누더기 타일)

* 패턴이름 : 누더기 타일
* 증상 : 프로그램이 버그를 고친 후에도 아직 고쳐지지 않았을 때처럼 행동한다.
* 원인 : 코드의 일부를 복사해 다른 곳에 붙여넣음으로써 이 중 한 부분을 고쳤어도 다른 부분에
같은 코드가 남아 있어 문제가 되는 것이다.
* 해결책과 예방책 : 가능한 공통적인 코드를 하나로 묶는다.
만약 이것이 가능하지 않다면 나머지 부분도 올바르게 고친다. 되도록 복사해서 붙여넣기를 하지 않는다.
(될수 있으면 코드를 캡슐화하고 각 기능에 대한 제어를 한 곳에서 하도록 노력해야 한다.)
@ 커맨드 패턴 : 소스에서 연산자를 캡슐화 하기 위해 커맨드 패턴이라는 디자인 패턴을 사용하고 있다.
커맨드 패턴은 데이터에 대한 연산을 캡슐화하기 위한 것이다. 다른 객체들에서는 필요한 경우 이렇게 캡슐화된
커맨드 객체를 보내거나 받을 수 있다.
이 패턴에서 사용하는 가장 핵심적인 개념으로는 Command인터페이스가 있다. 아래의 Command인터페이스에는
apply()라는 하나의 메소드가 선언되어 있다.
public interface Command {
 public Object apply(Object obj1, Object obj2);
}
다음에 우리는 이 인터페이스를 상속 받아 원하는 연산에 따라 apply()메소드를 다르게
구현해 주기만 하면 된다. 예를 들어, 커맨드 패턴을 사용하여 String 객체를 결합하려면
다음과 같이 Command인터페이스를 구현해 주면된다.
Class Concatenator implements Command {
 public Object apply(Object obj1, Object obj2) {
  return obj1.toString()+obj2.toString();
 }
}
Generic Types :

댓글 없음:

댓글 쓰기

ETL 솔루션 환경

ETL 솔루션 환경 하둡은 대용량 데이터를 값싸고 빠르게 분석할 수 있는 길을 만들어줬다. 통계분석 엔진인 “R”역시 하둡 못지 않게 관심을 받고 있다. 빅데이터 역시 데이터라는 점을 볼때 분산처리와 분석 그 이전에 데이터 품질 등 데이...