템플릿 메소드 패턴 템플릿 메소드 패턴은 전체적으로는 동일하면서 부분적으로는 다른 구문으로 구성된 메서드의 코드 중복을 최소화할 때 유용하다. 동일한 기능을 상위 클래스에서 정의하면서 확장, 변화가 필요한 부분만 서브 클래스에서 구현할 수 있도록 한다. 여러 데이터 마이닝 클래스들 위 세 클래스에는 유사한 코드가 많다. 다양한 데이터 형식을 처리하는 코드는 클래스마다 다르지만 데이터 처리 및 분석을 위한 코드는 거의 같다. 알고리즘은 그대로 두고, 코드 중복을 제거하는 방법이 필요하다. 해결책 세 가지 변환 알고리즘을 일련의 단계로 나누고, 이를 메서드로 변환한다. 그리고 단일 템플릿 메서드 내부에서 위에서 변환한 메서드들을 호출한다. 다양한 변환 알고리즘을 사
프록시 패턴 프록시는 원래 객체에 대한 접근을 제어하므로, 당신의 요청이 원래 객체에 전달되기 전 또는 후에 무언가를 수행할 수 있도록 한다. 신용 카드는 은행 계좌의 프록시이다. 은행 계좌는 현금의 프록시이다. 신용 카드, 은행 계좌는 같은 인터페이스를 구현하며 둘 다 결제에 사용할 수 있다. 필요성 객체에 대한 접근을 제한하는 이유는 다음과 같다. 방대한 양의 시스템 자원을 소비하는 거대한 객체가 있다고 가정하자. 이 객체는 필요할 때가 있지만, 항상 필요하진 않다. 우리는 이 객체를 필요할
싱글턴 패턴 인스턴스가 오직 하나만 생성되는 것을 보장한다. 어디에서든 이 인스턴스에 접근할 수 있다. 싱글턴 코드 실행 결과 5개 모두 같은 인스턴스 문제점 멀티 스레드에서 싱글턴 클래스를 이용할 때 인스턴스가 1개 이상 생성될 수 있다. 다음과 같이 멀티 스레드로 싱글턴을 여러개 만들 수 있다. 실행결과 인스턴스가 5개 생김 이와 같은 멀티 스레드 환경에서 싱글턴 클래스가 상태를 유지해야 하는 경우 문제가 발생한다. Printer 클래스를 counter 변