22.03.02_템플릿메소드_장단점
본문 바로가기
CS Study/디자인패턴

22.03.02_템플릿메소드_장단점

by KyeongMin 2022. 3. 3.
728x90
반응형

01.템플릿 메소드 패턴 장점

  • 템플릿 코드를 재사용하고 중복 코드를 줄일 수 있음
  • 템플릿 코드를 변경하지 않고 상속을 받아서 구체적인 알고리즘만 변경할 수 있음
    • open close principle, single responsibility principle을 만족

02.템플릿 메소드 패턴 단점

  • 리스코프 치환 원칙을 위반할 수도 있음
    • 리스코프 치환 원칙은 상속 구조에서 상위클래스 타입으로 사용하는 코드에서 그 코드를
      • 그 상위 타입말고 그 상위 타입을 상속받은 모든 그 어떠한 임의의 클래스로 바꾸더라도 코드가 의도한대로 동작해야한다는것
        • 그 부모가 가진 의도를 그대로 해야하는것
      • 여기서는 final을 이용해서 오버라이드 못하게 한다면 어느정도 리스코프 치환 원칙을 막을 수 있지만 추상 메소드 자체를 변경하면 사실 위배할 수 있는 가능성이 생김
  • 알고리즘 구조가 복잡할 수록 템플릿을 유지하기 어려워짐

 

https://github.com/3DPIT/study/blob/master/05.%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%ED%95%99%EC%8A%B5%ED%95%98%EB%8A%94GoF%EC%9D%98%EB%94%94%EC%9E%90%EC%9D%B8%ED%8C%A8%ED%84%B4/03.%ED%96%89%EB%8F%99%EA%B4%80%EB%A0%A8%EB%94%94%EC%9E%90%EC%9D%B8%ED%8C%A8%ED%84%B4/10.%ED%85%9C%ED%94%8C%EB%A6%BF%EB%A7%A4%EC%86%8C%EB%93%9C%ED%8C%A8%ED%84%B4/22.03.02_3.%ED%85%9C%ED%94%8C%EB%A6%BF%EB%A9%94%EC%86%8C%EB%93%9C%EC%9E%A5%EB%8B%A8%EC%A0%90/22.03.02_%ED%85%9C%ED%94%8C%EB%A6%BF%EB%A9%94%EC%86%8C%EB%93%9C%EC%9E%A5%EB%8B%A8%EC%A0%90.md

 

 

728x90
반응형

댓글