디자인 패턴 타입

  • Structural design pattern:
    • 더 큰 구조를 형성하기 위해서 object들이 어떻게 구성되어야 하는지를 나타내는 디자인 패턴입니다.
    • MVC, MVVM, Facade가 이에 해당됩니다.
  • Behavioral design pattern:
    • object들이 서로 어떻게 상호작용하는지에 대한 디자인 패턴입니다.
    • Delegation, Strategy, Observer가 이에 해당됩니다.
  • Creational design pattern:
    • object들을 어떻게 생성하고, 인스턴트화할지에 대한 디자인 패턴입니다.
    • Builder, Singleton, Prototype이 이에 해당됩니다.

디자인 패턴들에 대한 비판

  • 디자인 패턴을 남발한다면, 프로젝트가 복잡해질 것입니다.
  • 현대 프로그래밍 언어에서 디자인 패턴은 redundant합니다.
  • 디자인 패턴은 object-oriented 원칙을 배우기 귀찮아서 배우는 것입니다.
  • 디자인 패턴은 쓸데없다고 하더라…

디자인 패턴의 이점

  • 디자인 패턴은 (개발자들간의) common language를 형성합니다.
  • 디자인 패턴은 개발자들이 (프로젝트에) onboarding할 때 유리합니다.
  • 스파게티 코드 보다는 디자인 패턴으로 채워진 프로젝트가 더 좋은 인상을 줄 수 있습니다.
  • 디자인 패턴을 알면 코드 사이의 공통점을 발견할 수 있다.