객체지향의 4요소와 5원칙

김민구·2024년 11월 29일
0

C#

목록 보기
7/31

- 객체지향의 4요소

객체지향 프로그래밍(OOP)은 현실 세계의 개념을 프로그램으로 모델링하는 데 초점을 맞춘 프로그래밍 패러다임이다.
이를 위해 객체지향은 다음과 같은 4가지 핵심 요소를 활용한다.

1. 추상화(Abstraction):

복잡한 시스템을 단순화하여 핵심적인 특징만을 추출하는 과정
예: 자동차를 추상화하면 바퀴, 엔진, 몸체 등의 속성과 이동, 정지 등의 기능으로 표현할 수 있다.

2. 캡슐화(Encapsulation):

데이터(속성)와 그 데이터를 처리하는 함수(메소드)를 하나의 단위로 묶어 외부에서의 직접적인 접근을 제한하는 것을 의미한다.
데이터의 무결성을 보장하고, 코드의 복잡도를 줄이며, 유지보수를 용이하게 한다.

3. 상속(Inheritance):

기존 클래스의 속성과 메소드를 상속받아 새로운 클래스를 정의하는 것이다.
코드 재사용성을 높이고, 계층적인 클래스 구조를 형성하여 코드의 관리를 용이하게 한다.

4. 다형성(Polymorphism):

하나의 인터페이스를 통해 다양한 객체를 사용할 수 있도록 하는 것이다.
오버로딩(Overloading)과 오버라이딩(Overriding)을 통해 구현된다.

- 객체지향의 5원칙 (SOLID)

객체지향 설계를 효과적으로 수행하기 위해서는 SOLID 원칙을 따르는 것이 중요합니다. SOLID는 다음과 같은 5가지 원칙의 첫 글자를 따서 만들어진 약자이다.

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):

고수준 모듈은 저수준 모듈에 의존하지 않아야 하며, 둘 다 추상화된 인터페이스에 의존해야 한다.
의존성을 반전시켜 시스템의 유연성을 높이고 결합도를 낮출 수 있다.

profile
C#, Unity

0개의 댓글