1. 객체지향이란?
- 소프트웨어 개발 방법론 중 하나
- 현실 세계의 사물과 개념을 프로그래밍적으로 모델링하여 문제를 해결
- 클래스(Class): 클래스는 객체를 생성하기 위한 설계도
- 추상화(Abstraction): 필요한 공통된 속성이나 기능을 추출
- 상속(Inheritance): 상속은 이미 존재하는 클래스(부모 클래스)를 기반으로 구체적인 클래스(자식 클래스)로 구현
- 다형성(Polymorphism): 다형성은 같은 이름의 메서드나 함수가 다른 기능을 수행
- 캡슐화(Encapsulation): 데이터와 동작을 하나의 단위로 묶어 외부에서의 접근을 제어하고, 객체의 내부를 보호
2. 응집도 와 결합도
- 응집도(Cohesion):
응집도는 클래스나 모듈 내부의 요소들이 서로 연관되어 있는 정도를 나타냄
* 높은 응집도는 한 모듈 내의 요소들이 서로 밀접하게 관련되어 있음
- 결합도(Coupling):
결합도는 모듈 간의 상호 의존성 정도를 나타냄
* 두 모듈이 얼마나 강하게 결합되어 있는지를 측정
* 높은 응집도와 낮은 결합도를 가진 프로그램이 유지보수에 효율적
3. SOLID 원칙
- SOLID 원칙은 객체지향 설계의 다섯 가지 기본 원칙
- 소프트웨어의 유연성, 확장성, 유지보수성을 향상
1. 단일 책임 원칙 (Single Responsibility Principle, SRP):
- 클래스는 단 하나의 책임만 가져야 한다 (한 가지의 기능)
2. 개방-폐쇄 원칙 (Open-Closed Principle, OCP):
- 자신의 수정에 대해서는 열려 있어야 하고, 수정에 대한 외부의 영향에는 닫혀 있어야 한다
3. 리스코프 치환 원칙 (Liskov Substitution Principle, LSP):
- 상위 타입의 객체는 하위 타입의 객체로 대체될 수 있어야 한다
4. 인터페이스 분리 원칙 (Interface Segregation Principle, ISP):
- 클라이언트는 자신이 사용하지 않는 메서드에 의존하지 않아야 한다
5. 의존 역전 원칙 (Dependency Inversion Principle, DIP):
- 고수준 모듈은 저수준 모듈에 의존해서는 안됨
- 즉, 제공하는 인터페이스에만 종속적이 되어야 한다.
* SOLID 원칙을 적용하면 코드의 유연성과 확장성을 높일 수 있음
'디자인패턴' 카테고리의 다른 글
[디자인패턴] GOF 디자인 패턴 (1) | 2024.02.28 |
---|---|
[디자인패턴] 정책 패턴 (Strategy) (0) | 2024.01.29 |
[디자인패턴] 파사드 패턴 (Facade) (0) | 2024.01.29 |
[디자인패턴] 옵저버 패턴(Observer) (0) | 2024.01.29 |
[디자인패턴] 데코레이터 패턴 (Decorator) (0) | 2024.01.28 |