• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

다형성, OCP, DIP의 차이점

24.07.02 14:01 작성 24.07.02 14:21 수정 조회수 61

0


[질문 내용]

다형성 : 하나의 타입으로 여러개의 객체를 다룰 수 있는 것

OCP : 변경에는 닫혀있고, 확장엔 열려있는것 따라서 클라이언트 기존의 코드는 변경하지 않고 확장을 통해 기능을 추가하고 변경할 수 있다

DIP : 클라이언트와 구현체는 추상화에 의존해야된다는 것 따라서 클라이언트가 구현 객체에 의존하는 것이 아닌 클라이언트와 구현객체 사이에 인터페이스를 두고 클라이언트와 구현객체가 인터페이스에 의존하여 구현객체를 변경해도 클라이언트에 영향이 없음을 의미한다

전 아무리 생각해도 다형성, OCP, DIP 이 세가지가 결국엔 추상화에 의존해서 클라이언트의 코드 변경없이 기능을 확장시킨다를 의미하고 있고, 다형성, OCP, DIP 이 세가지가 말만다르지 다 똑같아 보이는데 ,,

명확한 차이점이 있을까요? 그리고 예를들어 OCP를 위반해도 DIP는 지켜지는 그런 상황도 있을까요?

답변 1

답변을 작성해보세요.

0

David님의 프로필

David

2024.07.02

안녕하세요. 김민정님, 공식 서포터즈 David입니다.

다형성을 사용했지만 OCP를 지키지 못하는 케이스는 6분 43초부터 보시면 장표에 언급됩니다.

똑같은 의미라면 다형성을 사용하지만 OCP를 지키지 못하는 경우가 발생하지 않을 것입니다.

OCP를 지키기 위해서 다형성이 사용됩니다.

이외 자세한 내용은 아래 답변을 참고해 주세요:)

https://www.inflearn.com/questions/652219/comment/212582

감사합니다.


채널톡 아이콘