2021.12.11_데코레이터패턴03.장점과단점
본문 바로가기
CS Study/디자인패턴

2021.12.11_데코레이터패턴03.장점과단점

by KyeongMin 2021. 12. 11.
728x90
반응형
  • 기존 코드 변경하지 않고 부가 기능 추가하는 패턴

장점

  • 새로운 클래스를 만들지 않고 기존 기능을 조합할 수있음
  • 컴파일 타임이 아닌 런타임에 동적으로 기능을 변경할 수 있음
    • 조합을 할때 플래그를 사용해서 구분을 함
      • 값에 따라서 그전에 플래그가 바뀌면 기능의 조합을 동적으로 할 수 있음
  • 기존의 코드는 바뀌지 않고 기능을 확장할 수있는 open Close 법칙이 적용됨
  • 클라이언트가 인터페이스 사용 (의존성 역전 법칙)
  • solid의 대부분 적용된 패턴임

단점

  • 데코레이터를 조합하는 코드가 복잡할 수 있음
    • after의 코드가 늘어남
    • 대신 상속보다는 좀 덜하지만 굳이 따지자면 인터페이스랑 데코레이터를 만든것이 정적으로 들어난것임, 너무 큰 단점은 아님

 

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/02.%EA%B5%AC%EC%A1%B0%EA%B4%80%EB%A0%A8%EB%94%94%EC%9E%90%EC%9D%B8%ED%8C%A8%ED%84%B4/%EB%8D%B0%EC%BD%94%EB%A0%88%EC%9D%B4%ED%84%B0%ED%8C%A8%ED%84%B4/2021/1211/03.%EC%9E%A5%EC%A0%90%EA%B3%BC%EB%8B%A8%EC%A0%90/2021.12.11_%EB%8D%B0%EC%BD%94%EB%A0%88%EC%9D%B4%ED%84%B0%ED%8C%A8%ED%84%B403.%EC%9E%A5%EC%A0%90%EA%B3%BC%EB%8B%A8%EC%A0%90.md#%EB%8B%A8%EC%A0%90

 

GitHub - 3DPIT/study

Contribute to 3DPIT/study development by creating an account on GitHub.

github.com

 

728x90
반응형

댓글