profile image

L o a d i n g . . .

반응형

객체지향이란?

객체지향 프로그래밍이란, 현실에 존재하는 사물과 대상(객체), 그리고 그들 간의 상호작용을 있는 그대로 실체화시키는 형태의 프로그래밍이다.

기존의 프로그래밍 언어들과 동떨어진 것이 아닌, 몇 가지 규칙을 추가하여 발전된 형태의 언어이다.

  1. 높은 코드의 재사용성
  2. 코드 관리 용이
  3. 신뢰성이 높은 프로그래밍

 

원칙: SOLID

단일 책임의 원칙(SRP)

Single Responsibility Principle

모든 클래스는 단 하나의 책임을 가진다. 여기서 '책임'이란, 클래스를 변경해야 할 하나 이상의 이유라고 볼 수 있다. 따라서 클래스를 수정할 이유가 오직 하나여야 한다.

클래스가 하나 이상의 책임을 가지게 된다면, 그 책임들이 서로 관계를 맺게 된다. 책임 변경 시, 다른 하나의 책임 때문에 엉키거나 변경이 불가능한 경우가 발생할 수 있다.

 

개방/폐쇄의 원칙(OCP)

Open/Close Principle

소프트웨어의 구성 요소는 확장에 대해서는 개방되어 있어야 하나, 수정에 대해서는 폐쇄되어야 한다.

변경이나 추가가 발생하더라도 기존의 구성 요소에는 수정이 일어나지 않아야 하며, 대신에 기존의 구성 요소들을 확장하여 재사용할 수 있어야 한다.

 

리스코브 치환 원칙(LSP)

The Liskov Substitution Principle

자식 클래스는 언제나 자신의 부모 클래스를 교체할 수 있다. 즉, 부모 클래스가 들어갈 자리에 자식 클래스를 넣어도(Upcasting) 잘 작동되어야 한다.

 

인터페이스 분리 원칙(ISP)

Interface Segregation Principle

자신이 사용하지 않는 인터페이스는 구현하지 않아야 한다. 즉, 어떤 클래스가 다른 클래스에 종속될 때는 가능한 최소한의 인터페이스를 사용해야 한다.

 

의존성 역전 원칙(DIP)

Dependency Inversion Principle

상위 클래스는 하위 클래스에 의존하지 않아야 한다.

 

 

참고

<윤성우의 열혈 C++ 프로그래밍>, <Java의 정석>

http://www.nextree.co.kr/p6960/

http://www.gisdeveloper.co.kr/?p=691

반응형
복사했습니다!