[방법론] 객체지향 이론(OOP)
객체지향 이론
가장 기본적인 객체지향 이론과 객체지향 개발 방식에 대해 알아보자.
-
정의 및 특징
- 나오는 키워드 : ‘추상화, 캡슐화, 상속, 다형성..’, ‘붕어빵 틀, 붕어빵’
- 객체 지향이란 코드 간에 서로 관계를 맺어줌으로써, 유기적으로 프로그램을 구성하는 것이며 코드의 재사용성, 관리가 용이 하다는 특징을 가지고 있다.
-
객체지향 5대 원칙(SOLID)
-
‘클린코드’의 저자 로버트 마틴이 설명한 원칙
-
SOLID - 5대 원칙
-
단일 책임 원칙(Single responsibility principle)
-
개방 폐쇄 원칙(Open/closed principle)
-
리스코프 치환 원칙(Liskov substitution principle)
-
인터페이스 분리 원칙(Interface segregation principle)
-
의존관계 역전 원칙(Dependency inversion principle)
+이 내용은 코드로 좀 더 확인을 하자.
-
-
-
객체지향적 개발 방식 3가지
- ORR (One Responsibility Rule)
- 클래스와 메소드는 한가지 종류의 책임만을 다음과 같이 수행해야만 한다.
- 그 책임에 해당하는 일을 빠짐없이 모두 해야 한다.
- 그 일을 자신만이 유일하게 한다.
- 이 원리는 높은 응집도와 밀접한 관련이 있다. 이것을 따르면 자연스럽게 프로그램은 응집도가 높아진다
- OCP (Open Closed Principle)
- 재사용 가능한 클래스는 확장을 할 수 있지만 수정해서는 안된다.
- 새로운 기능을 추가할 때 기존 클래스의 소스코드를 수정하지 않고 기존 클래스를 상속받은 하위 클래스를 새롭게 정의함으로 가능해야 한다. 혹은 기존 코드를 재사용한다.
- LoD(Law of Demeter)
- 클래스의 메소드는 다음 객체들의 메소드만 호출해야 한다.
- (자기 자신 / 상위 클래스)
- (클래스의 속성객체)
- (메소드의 패러미터로 넘겨지는 객체)
- (내부에서 직접 생성된 객체)
- (다른 클래스의 메소드 안에서 생성되어 반환된 객체)
- 이 원리는 낮은 결합도와 밀접한 관련이 있다. 이것을 따르면 프로그램은 자연스럽게 결합도가 낮아지게 된다.
- ORR (One Responsibility Rule)