티스토리 뷰

반응형

🚀 OOP를 올바르계 설계해 나가는 원칙

OOP의 4대 특성 캡슐화, 상속, 추상화, 다형성은 객체지향 프로그래밍을 이어가는 동안 사용할 Tool 같은 역할이 된다.

도구가 있다면 용도에 맞게 사용해야하는데 요리를 하면 표준에 있듯이 OOP 세계에서도 원칙이라는 것이 존대한다.

OOP를 기반으로 설계하는 방식을 OOD (Object Oriented Design)이라고 하며
설계 방법을 구체화 하여 정리한 원칙이 SOLID가 되는 것이다.

🌠 SOLID

원칙이 탄생한 것은 높은 응집도와 낮은 결합도 목표로 로버트 C.마틴이 확립한 개념이다.

☄ LSP(Liskov Substitution Principle) : 리스코프 치환 원칙

서브 타입은 언제나 자신의 기반 타입으로 교체할 수 있어야한다.

LSP원칙의 목적은 교체에 있다.

OOP에서의 상속은 계층도 혹은 조직도가 아닌 분류도가 되어야한다. 즉, 다음 원칙이 곧 LSP원칙의 기반이 되는 것이다.

  • 하위 클래스는 상위 클래스의 한 종류이다.
  • 구현 분류는 인터페이스할 수 있어야 한다.

010

✔ LSK의 잘못된 예

아버지 춘향이 = new 딸();

상위 클라스 역할의 아버지가 하위 클라스의 딸 에게 자신의 역할을 줄 수는 없다.

춘향이는 아버지라는 객체의 참조 변수이지만 아버지의 메서드를 수행할 수는 없다.

011

✔ LSK의 올바른 예

동물 황제펭귄 = new 펭귄();

동물 객체의 하위 계층은 펭귄이 될 수 있으며 펭귄은 동물의 역할을 수행할 수 있다.
때문에 동물과 펭귄의 역할은 LSP원칙에 만족된다.

결국 리스코프 치환 원칙은 객제 지향의 상속이라는 특성을 올바르게 적용하며 자연스럽게 얻게되는 것이다.

🧾 Reference

반응형

'이론' 카테고리의 다른 글

객체지향설계의 5대 원칙 - SRP 편  (0) 2022.04.01
객체지향설계의 5대 원칙 - OCP 편  (0) 2022.03.31
객체지향설계의 5대 원칙 - ISP 편  (0) 2022.03.28
Service Layer  (1) 2022.03.23
도메인 주도 설계 - DDD  (0) 2022.03.20
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함