728x90
객체지향은
각 클래스들은 각자의 책임과 역활 이있다.
객체지향 프로그래밍은 유연하고
변경이 쉽게 만들기 위해
객체지향의 5대원칙이 있는데 이 원칙의 존재이유는
유지보수에 유리하고 유연하고 확장이 쉽게 만들기 위함이다.
SRP (Single Responsibillty Principle) - 단일 책임 원칙
-한 클래스는 하나의 책임만 가져야 한다.
-하나의 책임의 기준은 변경이다.
- 변경이 발생하였을 때, 변경해야 될 부분이 적으면, 단일 책임 원칙을 잘 따른것이다.
- 클래스를 변경해야하는 이유가 오직 하나여야 한다. ex)결제버튼의 위치가 변경되었지만, 결제기능에 대한 영향은 없다.
OCP (Open/Closed Principle) - 개방 / 폐쇄 원칙
-확장에는 열려있고 변경에는 닫혀있어야 한다.
-변경을 위한 비용은 줄이고,확장을 위한 비용은 극대화 해야한다.
-객체지향의 장점을 극대화하는 아주 유용한 원리 (.feat 다형성)
LSP (Liskoy Subsitution Principle) - 리스코프 치환 원칙
-서브타입은 언제나 자신의 상위 타입으로 교체할 수 있어야 한다.
-정확성을 깨뜨리면 안된다. ex)붕어빵 틀에서 새빵이 나오면 안된다.
-상속을 잘 활용하고 있다면, 이미 LSP를 하고 있다.
ISP (Interface Sgregation Principle) - 인터페이스 분리 원칙
-클라이언트가 자신이 사용하지 않는 메서드에 의존하지 않아야 한다.
-특정 클라이언트를 위하여 하나의 범용 인터페이스를 제공하는 것 보다 여러개의 인터페이스를 제공하는것이 났다.
DIP (Dependency Inversion Principle0 - 의존관계 역전 원칙
-객체들의 협력하는 과정에서 의존 관계가 형성 된다.
-의존관계 역전 원칙은 이러한 의존관계를 맺을 때,
어떻게 하면 변화에 용의하게 대응할 수 있을 것인가에 대한 가이드 라인이다.
-변하기 쉬운 것과 어려운 것을 구분해야 한다.
-구체적인 행동(*변하기 쉬운것)
- 스마트폰으로 전화를 건다. -전화를 건다.
- 공중전화로 전화를 건다. -전화를 건다.
- 이메일을 발송한다. -메세지를 전달한다.
- 카카오톡 메세지를 전달한다 -메세지를 전달한다.
- 흐름이나 개념 같은 추상적인 것(*변하기 어려운 것)
- 전화를 건다
- 메세지를 전달한다.
728x90
'개-발 > Java + Spring + Kotlin' 카테고리의 다른 글
[JAVA] Stream / 중간연산 (0) | 2022.12.12 |
---|---|
[JAVA] 컬렉션 프레임워크 ( Map ) (0) | 2022.12.04 |
[JAVA] 컬렉션 프레임워크 ( List, Set ) (0) | 2022.12.04 |
[JAVA] Lambda 람다표현식 (0) | 2022.12.01 |
[JAVA] Optional (옵셔널) (0) | 2022.12.01 |