Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- influxdb 설치
- g++ 업데이트
- selinux port 등록
- c3 초
- c3 second
- c3 축 가리기
- snmp test
- semanage
- c++ 정규식
- python subprocess
- InfluxDB
- c3 step graph
- gcc regex
- python os
- CentOS7
- 1697
- grafana dashboard
- 정규식 컴파일
- centos pyhon 설치
- 백준
- regex_search
- python popen
- gcc 업데이트
- subporcess path
- snmp
- 정규식 활용
- c3 축 없애기
- telegraf
- 정규식 문자열 출력
- linux시간으로 변경
Archives
- Today
- Total
리셋 되지 말자
LSP - 리스코프 치환 원칙 본문
LSP-개방 폐쇄 원칙
"서브 타입은 언제나 자신의 기반 타입(base type)으로 교체할 수 있어야 한다." - 로버트 C. 마틴
객체 지향에서의 상속은 계층도가 아닌 분류도가 돼야 한다. 따라서 객체 지향의 상속은 아래의 조건을 만족해야 한다.
-
하위 클래스 is a kind of 상위 클래스 : 하위 분류는 상위 분류의 한 종류이다.
-
구현 클래스 is able to 인터페이스 : 구현 분류는 인터페이스할 수 있어야 한다.
계층도 형태의 클래스
아버지를 상위 클래스(base type)으로 하는 딸 이라는 하위 클래스(sub type)가 있다고 가정한다.
전형적인 계층도 형태이며, 객체 지향의 상속을 잘못 적용한 예다.
아버지 춘향이 = new 딸();
춘향이가 아버지의 역할도 해야한다. -> 이상하다. = LSP 위반
동물 뽀로로 = new 펭귄();
펭귄 한 마리가 태어나 뽀로로라 이름짓고 동물의 행위(메서드)를 하게 한다. -> 전형 이상하지 않다. = LSP 만족
LSP 의역
"하위 클래스의 인스턴스는 상위형 객체 참조 변수에 대입해 상위 클래스의 인스턴스 역할을 하는데 문제가 없어야 한다."
- 고래가 포유류의 역할을 하는데 아무 문제가 없다.
- 고래가 동물 역할을 하는데 아무 문제가 없다.
-> 하위 클래스가 상위 클래스의 역할을 하는데 아무런 문제가 없다.
'Java(폐지) > 객체지향 설계 5원칙-SOLID' 카테고리의 다른 글
SRP와 ISP (0) | 2020.07.21 |
---|---|
ISP - 인터페이스 분리 원칙 (0) | 2020.07.21 |
OCP - 개방 폐쇄 원칙 (0) | 2020.07.20 |
SRP-단일 책임 원칙 (0) | 2020.07.20 |
객체 지향 설계 5원칙 - SOLID (0) | 2020.07.20 |
Comments