inblog logo
|
keepgoing
    JAVA

    [디자인패턴] 2 전략패턴 (Strategy Pattern)

    SOLID
    김호정's avatar
    김호정
    Aug 13, 2024
    [디자인패턴] 2 전략패턴 (Strategy Pattern)
    Contents
    2-1. 전략 패턴
    전략 패턴
    전략 패턴은 알고리즘들의 패밀리를 정의하고, 각 패밀리를 별도의 클래스에 넣은 후 그들의 객체들을 상호교환할 수 있도록 하는 행동 디자인 패턴입니다.
    전략 패턴
    https://refactoring.guru/ko/design-patterns/strategy
     
    전략패턴의 핵심은 추상화!
    전략패턴은 추상적인 것에 의존하는 것!
     

    2-1. 전략 패턴

    Solid

     
    여기에서 중요한 3가지는 → s.o.d
     

    D : DIP (의존 역전 원칙)

    구체적인 것이 아닌 추상적인 것에 의존해라
     
    DIP가 무엇인가?
    구체적인 것이 아닌 추상적인 것에 의존하는 것입니다.
     
    여기서 그치지 말고
     
    DIP를 왜 쓰는가?
    라는 질문에도 대답할 수 있도록 준비하라.
    SOLID - DIP(Dependency Inversion Principle)란 : 의존성 역전 원칙
    DIP? DIP는 다음과 같은 정의를 가지고 있습니다 상위 모듈은 하위 모듈에 의존해서는 안된다 추상화는 세부 사항에 의존해서는 안된다 정말 아무리봐도 무슨말인지 모르겠죠? 조금 쉽게 설명하자면 DIP의 핵심은 의존 관계를 맺을 때 변화하기 쉬운 것에 의존하기보다는, 변화하지 않는 것에 의존하라는 원칙입니다! 현실 세계를 예로 들어 볼까요 내가 PayService를 개발하고 싶은 개발자라고 가정해봅시다 Pay수단에는 되게 여러가지 방법이 있겠죠? SamsungPay, KaKaoPay, NaverPay ... 기타 등등 그러면 개발자의 입장에서 위 Pay수단중에서 하나 골라서 사람들에게 Service를 제공한다고 가정합시다. 하지만 사람들의 요구사항에 의해서 다른 Pay수단들도 추가해달래요! 초기 설계때 ..
    SOLID - DIP(Dependency Inversion Principle)란 : 의존성 역전 원칙
    https://huisam.tistory.com/entry/DIP
    SOLID - DIP(Dependency Inversion Principle)란 : 의존성 역전 원칙
     
    notion image
     
    public class Mem02 {
    void 달리다(Car car){
    → 여기서 추상적인 것 Car 에 의존하고 있다.
    }
    }
     

    O : OCP (개방 폐쇄 원칙)

    기존 코드 수정안하고 수정/추가 가능
     

    S : SRP (단일 책임 원칙)

    단일 책임의 원칙.
    1개의 매서드는 1개의 기능만.
    2개 이상의 기능이 들어가면 디버깅이 힘들어진다.
    어디가 문제인지 파악하기 어려워 진다는 것!
    근데 SRP를 지켜서 코드를 짜기란 쉽지 않아 1개의 매서드에
    여러 기능이 들어가는 경우도 있다.
    최대한 최소한의 책임만 가지도록 만든다.
     
     
    // 누가 물어보면 대답할 수 있을정도로 정리하라
     
    Share article
    Contents
    2-1. 전략 패턴

    keepgoing

    RSS·Powered by Inblog