현재 버전

OCP , DIP 차이


안녕하세요 솔리드 공부를 하던 도중에 궁금한점이 생겨서 질문 드려봅니다.


OCP: 확장에는 열리고, 변화는 닫혀야한다.

DIP: 구체적인 것이 추상화된곳에 의존해야한다. 추상화된것이 구체적인 것에 의존하면 안된다.


예를들면 자동차,타이어가 있다고 가정하겠습니다.

OCP를 적용하면 자동차 -> 타이어(interface) ->일반타이어 -> 스노우타이어

이렇게 상위클래스나,인터페이스를 중간에 둠으로써 어떤 객체가 생기더라도 자동차에는 영향이 없는거라고 알고있습니다.

 DIP를 적용하면  똑같이 추상화된  타이어(interface)를 두고 일반타이어 -> 스노우타이어 둠으로써 

어떤 객체가 생기더라도 자동차에 영향이 없다.


이렇게 제가 이해한게 맞을까요??

그리고 2개 이론이 같다고 느껴지고 있습니다. 차이점이 있을까요??


수정 이력

2021-11-24 14:41:30 에 아래 내용에서 변경 됨 #1

안녕하세요 솔리드 공부를 하던 도중에 궁금한점이 생겨서 질문 드려봅니다.


OCP: 확장에는 열리고, 변화는 닫혀야한다.

DIP: 구체적인 것이 추상화된곳에 의존해야한다. 추상화된것이 구체적인 것에 의존하면 안된다.


예를들면 자동차,타이어가 있다고 가정하겠습니다.

OCP를 적용하면 자동차 -> 타이어(interface) ->일반타이어 -> 스노우타이어

이렇게 상위클래스나,인터페이스를 중간에 둠으로써 어떤 객체가 생기더라도 자동차에는 영향이 없는거라고 알고있습니다.

 DIP를 적용하면  똑같이 추상화된  타이어(interface)를 두고 일반타이어 -> 스노우타이어 둠으로써 

어떤 객체가 생기더라도 자동차에 영향이 없다.


이렇게 제가 이해한게 맞나요??

그리고 2개 이론이 같다고 느껴지고 있습니다. 차이점이 있을까요??