IT 용어 개념 정리
[디자인패턴] 객체지향 SOLID 원칙이란?
파프리카_
2021. 3. 11. 00:18
728x90
반응형
프로그래밍을 하다보면 언젠가는 한번쯤 들어볼 SOLID
!
객체 지향 프로그래밍의 기본 5 원칙이라고 한다.
간단하게 뿌시고 가자!🎊
SOLID (객체 지향 설계)
로버트 마틴
이 2000년대 초반에 명명한 OOP의 다섯 가지 기본 원칙🤔 왜 만들었지?
시간이 지나도유지 보수
와확장
이 쉬운 소프트웨어를 개발하기 위해!SOLID :
마이클 페어드
가 기억하기 쉽게 앞 글자만 따서 소개한 것
SOLID 원칙의 가장 중요한 점은 응집도
를 높이고, 결합도
를 낮추어
🌞좋은 프로그래밍🌞을 하자는 것이다!
👀 OOP ?
Object Oriented Programming
객체
를 기본단위로 하여, 객체와 객체 간의관계
를 중심으로, 분석, 설계, 구현, 운영하는 방식
두문자 | 의미 | 개념 |
---|---|---|
S | SRP (Single Resposibility Principle) |
하나의 객체는 하나의 기능만 담당할 것! -> 응집도 를 위해 결합도 를 낮추자 |
O | OCP (Open/Closed Principle) |
기존 코드의 변경 없이, 달라진 요구사항을 적용하여 수정 추가할 수 있도록! -> 주로 Interface 를 통해 이를 실현한다 |
L | LSP (Liskov Substitution Principle) |
자식 클래스는 부모 클래스의 말을 잘 들어야한다! 🙄? 가급적이면 부모 클래스에 있는 멤버(속성, 기능)을 사용하자. 일관된 약속 을 유지할 수 있다. (다운캐스팅 필요❌) |
I | ISP (Interface Segregation Principle) |
인터페이스 분리 원칙으로, 하나의 인터페이스는 그에 맞는 = 실제 기능을 하는 멤버로만 구성한다! -> 시스템 내부의 의존성을 낮춰, 유지보수성 향상! |
D | DIP (Dependency Inversion Principle) |
의존 대상은 실제 메서드가 구현된 클래스보다는 Interface 나 abstract class 가 좋다! -> DI(의존성 주입) 을 통해, 의존 대상 객체를 선택할 수 있다. 이 때 의존 대상 객체에 구체적인 값이나 로직이 할당되어 있지 않다면 (변수명 or 메서드명만 있는 경우), 현재 클래스에서 반드시 값을 할당하거나 구현부를 정의해야한다. -> 깨끗한 종이에 새로 그림을 그리는 것이 좋다! |
📖 참고 (더 구체적인 내용이 있어서 읽어보시면 좋을 것 같습니다!)
728x90
반응형