GoF 디자인 패턴 2 - 생성 패턴

김정환·2024년 9월 2일
0

GoF 디자인패턴

목록 보기
2/9

생성 패턴


객체 생성

  • 객체지향 프로그램을 실행하기 위해선 클래스를 선언하고 객체를 생성한다.
    • 대표적으로 new 키워드로 생성한다.
  • 대규모 응용 프로그램은 객체지향 개발 시 생각보다 많은 객체가 필요하고, 이들 객체 간 관계를 설정한다.
    • 작성 로직에서 직접 객체를 생성하고 관계를 설정하면 객체 간 강력한 결합 관계가 발생한다.
    • ex) 하나의 객체 생성 후 해당 객체 내에서 새로운 객체를 생성하는 경우.
      • 이렇게 코딩하면 2개의 객체는 종속 관계를 형성한다.
      • 종속 관계를 가진 객체는 향후 확장과 유지 보수를 어렵게 한다.
  • 생성 패턴 : 강력한 결합 관계를 느슨한 결합으로 변경하는 기법.
    • 느슨한 결합으로 변경된 객체
      • 확장을 보다 유연하게 하고
      • 보수를 편리하게 한다.

관계 설정

객체지향 프로그램에선 객체는 관계를 형성한다.

  • 객체의 관계를 고려해서 언제, 어떤 과정에 의해 생성할지 생각한 후
    더 체계적으로 코드를 설계해야 한다.

💡 관계는 매우 중요한 설계 기준이 된다.

  • 객체의 종류
    • 단일 객체 : 상속을 이용
    • 복합 객체 : 다른 객체를 포함 → 최근 더 선호하는 추세

💡 객체 설계 시, 어떤 유형의 객체를 생성할 지 미리 정의하는 것이 중요하다.

추상화

  • 실제 코드 개발 전, 구체적인 내용은 배제하고 개략적인 정보만 선언하는 것.
    • 추상화로 선언된 코드는 실제 내용 없어도 미리 선언된 정보만 이용하여 코딩할 수 있다.
    • 최근 프로그램이 대형화 됨에 따라 협업하기 위해 사용된다.
  • 추상화 작업은 추상적 개념과 실제 코드를 분리하는 효과가 있다.
    • 추상화를 통한 협업
      • 향후 개발할 코드를 예정할 수 있다.
      • 선언 만으로 주변 기능을 작성할 수 있다.

패턴

  • 생성 패턴은 목적과 과정에 따라 6가지로 분류된다.
    • 팩토리 → 팩토리 메서드 → 추상 팩토리 → 빌더
    • 싱글턴
    • 프로토타입
profile
사파 개발자

0개의 댓글