디자인 패턴(Design Pattern) - 2. 팩토리 패턴(factory pattern), 전략 패턴(stratege pattern) ,옵저버 패턴(observer pattern)

LEE ·2022년 6월 11일
0

CS 정리

목록 보기
3/12

팩토리 패턴 (factory pattern) :
객체를 사용하는 코드에서 객체 생성 부분을 때어내 추상화한 패턴이자 상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고, 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴입니다.

  • 팩토리 패턴은 상위 클래스와 하위 클래스가 분리되기 때문에 느슨한 결합을 가지며 상위 클래서에서는 인스턴스 생성 방식에 대해 전혀 알 필요가 없기 때문에 더 많은 유연성을 갖게 됩니다.
    또한 객체 생성 로직이 따로 떨어져 있기 때문에 코드를 리팩토링하더라도 한 곳만 고칠 수 있게 되니 유지 보수성이 증가됩니다.

전략 패턴 (stratege pattern) :
객체의 행위를 바꾸고 싶은 경우 '직접' 수정하지 않고 전력이라고 부르는 '캡술화한 알고리즘'을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴입니다.

  • 전략 패턴의 대표적인 예) passport 라이브러리

    Node.js 에서 인증 모듈을 구현할 때 쓰는 미들웨어 라이브러리로, 여러가지 '전략'을 기반으로 인증할 수 있게 합니다.
    서비스 내의 회원가입된 아이디와 비밀번호로 인증하는 LocalStrategy 전략과 ,페이스북, 네이버 등과같은 소설 로그인 기반으로 인증하는 OAuto 전략등을 지원합니다.
    즉 전략 만 바꿔서 인증하는 것 !!

옵저버 패턴 (observer pattern) :
주체가 어떤 객체의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 메서드 등을 통해 옵저버 목록에 있는 옵저버들에게 변화를 알려주는 디자일 패턴입니다.

  • 옵저버 패턴을 활용한 서비스로는 트위터가 있습니다. 내가 어떤사람을 팔로우 했다면 주체가 포스터을 올리게 되면 알림이 팔로우에게 가게된다.

  • 옵저버 패턴은 주로 이벤트 기반 시스템에 사용하며 MVC( Model -View -Controller ) 패턴에도 사용됩니다.
    예를 들어 주체라고 볼 수 있는 모델(model)에서 변경 사항이 생겨 update() 메서드를 옵저버인 뷰에 알려주고 이를 기반으로 컨트롤러(controller) 등이 작동하는 것입니다.

자바에서 상속과 구현

  • 상속 (extends) :
    상속은 자식 클래스가 부모클래스의 메서드 등을 상속받아 사용하며 자식 클래스에서 추가 및 확장을 할 수 있는 것을 말합니다. 이로 인해 재사용성, 중복성의 최소화가 이루어집니다.
  • 구현 (implements) :
    부모 인터페이스(interface)를 자식 클래스에서 재정의하여 구현하는 것을 말하며, 상속과는 달리 반드시 부모 클래스의 메서드를 재정의하여 구현해야 합니다.

상속과 구현의 차이

상속은 일반 클래스, abstract 클래스를 기반으로 구현하며, 구현은 인터헤이스를 기반으로 구현합니다.

출처 : 면접을 위한 CS 전공지식 노트 - 지은이 : 주홍철
을 읽고 정리한 내용입니다.

0개의 댓글