2015년 11월 16일 월요일

클래스 디자인 패턴 0.2 Design Pattern 설계 구상(문서 편집기 설계)

ps. 글 작성시 참고한 사항
   알라딘 책 설명
http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=8945072144?partner=googlek&EKAMS=realclick.757.2659.141.1406787890725.2242158&trackingDays=1&gclid=CIKkusPPgskCFYGbvAod4U8NPg



1. 서두
   만약 문서 편집기를 구현해야 한다면 어떤 방식으로
     설계를 고민해야 할까.
   GoF 에서는 Lexi 라는 문서편집기를 예제로 설명함.
     여기서도 이를 따름
   아래 내용은 0장 에서 설명한 내용대로 구현을
      고민한 결과임.

2. 문서 편집기가 꼭 가져야 할 기능
  1) 문서 구조
  2) 서식 설정
  3) 사용자 인터페이스 꾸미기
  4) 여러 룩앤필 표준 지원
  5) 여러 윈도우 시스템 지원
  6) 사용자 조작(command 의 이동 관련)
  7) 철자 검사 및 붙임표 처리


3. 구현 방향은?
  1) 문서 구조
     - 문자, 그림, 은 각각 객체에 담겨야 되고 이 객체는
        차별없이 편집기 안의 행, 열에 담겨야 된다.
     - 이를 위해서는 행, 열 에 대한 정의가 있어야 되고
     - 객체는 모두 인터페이스나 추상 클래스로 통합되어야 한다.
   결론 : 문서 구조를 위해서는 복잡채 패턴(Composite) 이 적용가능함

  2) 서식 설정
     - 문서는 각각 서식을 지닐 수 있으나 서식은 문서 구조와는
         독립적임
   결론 : 전략(Stratege ) 패턴의 적용을 고려가능함

  3) 사용자 인터페이스 장식
     - 화면안의 사각형 및 메뉴를 보여줘야 되는데 이는
        프로그램 실행히 항상 보여줘야 되므로
        문서 구조가 이를 상속받도록 하되 해당
        내용이 다치지 않도록 장식자 패턴을 고려할 만함
    결론 : 장식자 패턴(Decorator)을 이용

4) 다양한 룩앤룩 표준 지원
     - 버튼, 메뉴, 스크롤바 등의 객체를 같은 방식으로
        지원 할 수 있도록 추상 팩토리 패턴을 이용할 수 있다.
    결론 : 추상 팩토리(Abstract Factory) 패턴을 이용

5) 다중 윈도우 시스템 지원
     - 다양한 룩앤룩 표준은 시스템마다 다를수 있으나
         웹에 보여지는 기능은 비슷하기 때문에
         이를 셋팅하여 해당 OS 마다 차별 지원되도록 고려해야함
    결론 : 가교 (Bridge) 패턴을 이용

  6) 사용자 조작
     - 각 메뉴별, 사용자 입력에 대한 기능이 있을것이며,
        또한 뒤로 가기 버튼이나 기능을 통해 이전 상태로
        돌리는 기능을 포함하여야 함
    결론 : 명령(Command) 패턴을 사용 가능함

  7) 철자 검사 및 붙임표 연결
     - 글을 작성한 문서 전체를 스캔하여 문자, 단어를 구별하고
        이를 사전에 대입할수 있어야 함 이를 위해서
        파일 또는 객체에 접근 후 순회 하고 이를 가공해
        작업할 수 있어야 함
    결론 : 방문자(Visitor) 패턴을 활용가능


   


3.

댓글 없음:

댓글 쓰기