티스토리 뷰

 객체 지향(Object-Oriented Programming) 설계와 특징에 대해 기록한 페이지입니다.

 

SOLID 원칙 : 객체지행 프로그래밍의 5가지 설계 원칙

1. 단일 책임 원칙(SRP, Single Responsibility Principle)
 ▶ 하나의 모듈은 하나의 책임을 가져야 한다는 원칙
 
2. 개방 폐쇄 원칙(OCP, Open Closed Principle)
 ▶ 확장은 열려있고, 수정은 닫혀있어야 한다는 원칙
 
3. 리스코프 치환 원칙(LSP, Liskov Substitution Principle)
 ▶ 하위 타입은 상위 타입을 대체할 수 있어야 한다는 원칙
 
4. 인터페이스 분리 원칙(ISP, Interface Segregation Principle)
 ▶ 용도에 맞는 인터페이스를 적절하게 분리해야 한다는 원칙
 
5. 의존성 역전(DIP, Dependency Inversion Principle)
 ▶ 고수준 모듈은 저수준 모듈의 구현에 의존해선 안되며, 저수준 모듈이 고수준 모듈에 의존해야 한다는 원칙


OOP의 4대 특징 : 객체 지향 프로그래밍의 4가지 특징

1. 추상화
 ▶ 공통적이고 본질적인 특징을 추출하여 정의한 것
 
2. 상속
 ▶ 기존에 구현한 클래스를 재활용하여 구현할 수 있는 것
  - Is-A 관계 : 상속의 관계이며 abstract 를 사용하고 코드의 재사용이 목적
  - Has-A 관계 : 포함의 관계이며 interface 를 사용하고 코드의 확장이 목적

3. 다형성
 ▶ 객체의 속성이나 기능이 상황에 따라 여러 형태로 변할 수 있는 것(Overriding, Overloading)

4. 캡슐화
 ▶ 클래스 내의 연관된 속성이나 함수를 하나의 캡슐로 묶어 외부로부터 클래스의 접근을 최소화 하는 것(접근제한자)
  - public : 하위 클래스와 인스턴스에 접근 가능.
  - static : 클래스 외부에서 접근 가능. 인스턴스는 접근 불가
  - private : 클래스 본인만 접근 가능.
  - protected : 클래스 본인, 하위 클래스에서만 접근 가능.
  - default : 동일한 패키지 내에서만 접근 가능.
  ※ private < default < protected < public


감사합니다.

'프로그래밍 언어 > Java' 카테고리의 다른 글

[Java] 디자인 패턴 종류  (0) 2024.05.20
[Java] 이분탐색 예제  (0) 2024.05.13
[Java] JVM GC 프로세스  (0) 2024.05.13
[Java] Enum 활용  (0) 2023.07.14
[Java] Stream 사용법  (0) 2023.07.07
최근에 올라온 글
Total
Today
Yesterday