[각 패턴의 특징]
  • 프레젠테이션 티어(상단)
    • Intercepting Filter 패턴
      request를 직접 처리 하기 전에 가로채서, 선언적 방식으로 중복되는 전후처리를 한다.
    • Front Controller 패턴
      모든 request를 한 곳으로 보낸다.
    • Context Object 패턴
      특정 프로토콜에 한정되는 내용이나 불필요한 데이터를 포함하는 원래 객체 대신, 필요한 데이터만 Context Object로 만들어서 넘김
    • Application Controller 패턴
      request를 처리하는 액션 관리와 뷰 관리 컴포넌트를 중앙 집중화 한다.
    • View Helper 패턴
      View를 만드는 과정에서 제어 로직, 데이터 접근 로직, 포맷 로직을 분리한다. (예를들면 JSP 에서 스크립틀릿 대신 JSTL, Custom Tag 등을 헬퍼로 사용)
    • Composite View 패턴
      View를 만들 때 레이아웃을 조합한다. (예를들면 Header/Footer를 일관적으로 붙이는 것)
    • Service to Worker 패턴
      제어권이 뷰로 넘어가기 전에 프레젠테이션 모델을 가져오도록 제어 로직과 요청 핸들링을 중앙 집중화한다. 뷰는 프레젠테이션 모델에 근거해서 동적 응답을 생성한다. (비즈니스 로직 결과에 따라 View가 선택됨)
    • Dispatcher View 패턴
      정적 뷰이거나 동적 내용이 거의 없는 뷰, 간단한 애플리케이션을 만들 때만 제한적인 용도로 사용. (정적인 Business Helper 이용)
  • 비즈니스 티어(중간)
    • Business Delegate 패턴
      비즈니스 서비스 접근을 캡슐화하는 패턴
    • Service Locator 패턴
      서비스와 컴포넌트 검색을 쉽게 하는 패턴
    • Session Facade 패턴
      비즈니스 티어 컴포넌트를 캡슐화하고, 원격 클라이언트에서 접근할 수 있는 서비스를 제공하는 패턴
    • Application Service 패턴
      여러 컴포넌트에 분산되어 있는 관련된 비즈니스 로직 오퍼레이션을 조합하여 하나의 인터페이스로 서비스
    • Business Object 패턴
      객체 모델을 사용하여 비즈니스 데이터, 비즈니스 로직, 퍼시스턴스 로직을 분리
    • Composite Entity 패턴
      로컬 엔티티 빈과 POJO 패턴이라고 알려져있음. 데이터를 전송하기위한 객체에 대한 패턴
    • Transfer Object 패턴
      일명 Value Object(VO, TO) 패턴이라 알려져 있음. 데이터를 전송하기 위한 객체에 대한 패턴
    • Transfer Object Assembler 패턴
      하나의 Transfer Object로 모든 데이터를 처리할 수 없으므로, 여러 Transfer Object를 조합하거나 변형한 객체를 생성하여 사용하는 패턴
    • Value List Handler 패턴
      데이터 조회를 처리하고, 결과를 임시 저장하며, 결과 집합을 검색하여 필요한 항목을 선택하는 역할을 수행

  • 인테그레이션 티어(하단)
    • Data Access Object 패턴
      일명 DAO라고 알려져있음. DB 접근을 전담하는 클래스를 추상화하고 캡슐화함
    • Service Activator 패턴
      비동기적 호출을 처리하기 위한 패턴
    • Domain Store 패턴
      Business Object Model 에서 영속성을 분리하고자 할 때.
    • Web Service Broker 패턴
      하나 이상의 서비스를 XML 및 웹 프로토콜로 노출함. RPC방식이나 메시징 인터페이스
위쪽은 화면에 가깝고 아래쪽은 DB에 가깝다

[J2EE 리펙토링]
  1. 프레젠테이션 티어 리팩토링
    • 컨트롤러 도입
    • 동기화 토큰 도입
    • 각기 다른 로직을 지역화 하기 (응집도와 결합도)
    • 프레젠테이션 티어에 한정된 세부 구현을 비즈니스 티어로부터 숨기기
    • 뷰 안에 있는 포맷 변환 코드 제거하기
    • 클라이언트로부터 리소스 숨기기
  2. 비즈니스 티어와 통합 티어 리팩토링
    • 세션 빈으로 엔티티 빈 감싸기
    • Business Delegate 도입
    • 세션 빈 병합하기
    • 엔티티 빈 상호 통신 줄이기
    • 비즈니스 로직을 세션 빈으로 옮기기
  3. 일반 리팩토링
    • 데이터 접근 코드 분리(dao)
    • 티어에 따른 아키텍처 리팩토링
    • 커넥션 풀 이용하기

참고


출처 - http://kaylis.tistory.com/61



'Design Pattern > Common' 카테고리의 다른 글

디자인 패턴(책)  (0) 2013.04.16
Programming paradigms  (0) 2013.01.01
DSL(domain-specific language)  (0) 2013.01.01
Rich Domain Model  (0) 2012.11.05
java - 디자인 패턴 - 팩토리 패턴  (0) 2012.08.02
Posted by linuxism
,