객체지향 프로그래밍의 4가지 특징과 5가지 설계 원칙-SOLID

ggm-_-·2024년 10월 15일
0

TIL (Tody I Learn)

목록 보기
17/27
post-custom-banner

2024.10.15(화)


객체지향


객체지향 프로그래밍(OOP)의 4가지 특징

OOP: Object Oriented Programming
캡슐화, 추상화, 상속, 다형성

1. 캡슐화

캡슐의 특징을 가진다.
데이터를 은닉하고, 명확한 기능을 가진 물체로 만든다.

2. 추상화

본질적인 특징을 정의해서 구현한다.

3. 상속

부모 클래스의 형태를 자식이 똑같이 복사해서 사용한다.

4. 다형성

상황에 따라 역할이 바뀔 수 있다.
사용방식: 오버로딩/오버라이딩


SOLID, 객체지향 설계의 5가지 원칙

S. 단일책임원칙(SRP: Single Responsibility)

하나의 대상이 하나의 역할만 하는 것이다.
'책임'이 하나의 기능구현만 책임진다는 뜻이다.

O. 개방폐쇄원칙(OCP: Open Closed Priciple)

수정에는 닫혀있고, 확장에는 열려있는 방식이다.
코드는 수정되는 것보단, 확장을 통해 유지보수가 가능하도록 설계되어야 한다.

L. 리스코프 치환 원칙(LSP: Listov Substitution Priciple)

부모 말 좀 들어라 떼잉..
부모 클래스의 코드를 수정하지 마라.(오버라이딩해서 부모클래스의 동작을 지우지 마라)
부모 클래스에서 작성한 메서드를 오버라이딩 했을 때, base.메서드이름(); 을 지우지 마라.
낭비가 없게 코드를 작성하라.
부모 클래스에 들어가는 코드는 모든 자식 클래스에서 동작해야하는 부분이 되야 한다.
응집도를 올려라. 낭비되는 부분을 줄여라.

I. 인터페이스 분리원칙(ISP: Interface Segregation Principle)

인터페이스를 분리해서 사용하라.
목적과 용도에 맞게 인터페이스를 분리해서 작성하라.
인터페이스는 웬만하면 변하지 않도록 작성하라.

D. 의존성 역성원칙(DIP: Dependency Inversion Principle)

완성된 클래스에 접근하는 게 아니라 그 클래스의 상위 요소에 접근하여 참조하라.
변화가 많은 하위 클래스보다 변화가 적은 상위 클래스나 인터페이스를 참조하라는 것이다.


디자인 패턴

생성 패턴(Creational Pattern)

구조 패턴(Structural Pattern)

행동 패턴(Behavioral Pattern)

메세지를 통해서 소통하기 위해서 디자인 패턴을 배운다.
패턴에 대해서는 공부하게 되면 더 적도록 하겠다.

이상 오늘의 TIL 끝.

profile
미숙한 초보 게임 개발자
post-custom-banner

0개의 댓글