Singleton&Factory/Strategy Pattern

Hallelujah·2024년 10월 28일

CS

목록 보기
1/10

Singleton

Singleton pattern : 하나의 클래스에 오직 하나의 인스턴스 만을 가지는 패턴, 보통 데이터베이스 연결 모듈에 많이 이용됨

  • 장점 : 하나의 인스턴스를 만들고 다른 모듈들이 공유하여 사용하기 때문에 인스턴스 생성 비용 줄어듬

  • 단점

    • TDD
      TDD를 하게 되면 단위테스트를 하는데, 단위테스트는 독립적이면서 순서에 상관없이 진행되야 함
      하지만 하나의 인스턴스로 돌아가기 때문에 독립적인 인스턴스를 만들기 어려움
    • 의존성
      모듈간의 결합을 강하게 만든다 -> 의존성 주입으로 결합을 느슨하게 만들 수 있다
      '의존성 주입자'로 하위모듈에 대한 상위 모듈의 의존성을 떨어뜨린다
  • 의존성 주입 원칙 : 상위모듈은 하위모듈에서 어떠한 것도 가져오지 말하야한다

Factory pattern

팩토리 패턴은 객체 생성부분을 뗴어내 추상화한 패턴이자 상속관계에 있는 클래스들 중에 상위 클래스가 뼈대를 정하고 하위 클래스에서 구체적인 구현을 정하는 패턴이다

  • 상위클래스는 인스턴스 생성방식에 대해 전혀 모름 -> 유연성 증가
  • 코드 유지 보수할 때에 한 곳만 고치면 됨 -> 유지/보수성 증가

Strategy pattern

객체의 행위를 직접 수정하지 않고 캡슐화한 알고리즘을 컨텍스트 안에서 바꿔주면서 행위를 수행한다

profile
개발자

0개의 댓글