ABOUT ME

다음 섬으로 향하고자, 이번 섬을 기록하는 어느 개발자의 나침반

Today
Yesterday
Total
  • [Design Pattern] 시작하기
    CS/Design Pattern 2023. 1. 29. 17:48

    최근 인터랙티브 무비 개발을 하면서 클래스 간의 관계를 맺고 정리하는 부분에서 부족함을 느꼈다.

    이 부분의 발전을 위해서 디자인 패턴을 공부해보기로 했다.

     

    https://www.youtube.com/watch?v=An7kqZ5D7j8&list=PLe6NQuuFBu7FhPfxkjDd2cWnTy2y_w_jZ 

    디자인 패턴: 패턴처럼 자주 나타나는 클래스 사이에 관계를 맺는 방법

     

    하나의 클래스가 많은 기능을 갖는 것은 바람직하지 않다. 한 클래스의 역할은 하나 내지는 최소한인 것이 좋다.

    이렇게 하면 문제 발생 시 코드 수정/유지보수가 편하고 새로운 기능 추가하기에도 편하기 때문이다.

     

    GoF개발자분들이 만든 디자인 패턴이 가장 대표적이다.

    GoF는 객체지향 문제점을 분석해 카탈로그화 하여 아래와 같이 패턴으로 정리했다. 

    이렇게 카탈로그화 된 패턴은 시스템 유지보수에 유용하고 객체 간 상호작용, 설계 의도를 금방 확인할 수 있어 유용하다.

    협업이 많은 경우 통일된 개발 방식을 공유하는 것이 중요하다. 팀원간에 개발 방식에 차이가 있으면 최종 결과로 합치기가 어렵기 때문이다.

    디자인 패턴을 통해 이와 같은 문제를 어느정도 해결하고 통일화 된 코드를 작성할 수 있다.

     

    GoF 23개의 패턴(생성패턴5, 구조패턴7, 행위패턴11)

    생성 패턴 구조 패턴 행위 패턴
    Factory Method
    Abstract Factory
    Builder
    Prototype
    Singleton
    Adapter
    Bridge
    Composite
    Decorator
    Facade
    Flyweight
    Proxy
    Interpreter
    Template Method
    Chain of Responsibility
    Command
    Iterator
    Mediator
    Memento
    Observer
    Strategy
    Visitor

     

     

Designed by Tistory.