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 :

댓글 없음:

댓글 쓰기

블록체인 개요 및 오픈소스 동향

블록체인(block chain) 블록체인은 공공 거래장부이며 가상 화폐로 거래할때 발생할때 발생할 수 있는 해킹을 막는 기술. 분산 데이터베이스의 한 형태로, 지속적으로 성장하는 데이터 기록 리스트로서 분산 노드의 운영자에 의한 임의 조작이 불가...