by Lee YeJi
[목차]
- OOP란?
- Java / C++ / C 차이점
- Java의 특징
- SOLID 원칙
-
- OOP란?
Object-Oriented Programing의 약자로 프로그램 설계방법론이자 개념의 일종이다. 프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아니라 프로그램을 수많은 ‘겍체’라는 기본단위로 나누고 이 객체들의 상호작용을 서술하는 방식이다.
객체 / 클래스 / 인스턴스 차이점
- Java / C++ / C 차이점
- OOP의 특징
-
추상화
구체적인 사물들의 공통적인 특징을 파악해서 이를 하나의 개념으로 다루는 것
각 개체의 구체적인 개념에 의존하지말고 추상적 개념에 의존하여 설계해야 한다. - 캡슐화
연관있는 변수와 함수를 클래스로 묶는 작업
높은 응집도와 낮은 결합도를 유지할 수 있도록 설계해야 한다.- 응집도(Cohension): 클래스나 모듈 안의 요소들이 얼마나 밀접하게 관련되어 있는가
- 결합도(Coupling): 어떤 기능을 실행하는 데 다른 클래스나 모듈에 얼마나 의존적인가
-
일반화(상속)
여러 개체들이 가진 공통된 특성을 부각시켜 하나의 개념이나 법칙으로 성립시키는 과정
일반화관계는 객체지향 프로그래밍 관점에서는 상속관계라 한다. 그래서 속성이나 기능의 재사용만 강조해서 사용하는 경우가 많다.
부모자식 클래스간에는 ‘is a kind of’관계가 성립되어야 한다. - 다형성
서로 다른 클래스의 객체가 같은 메시지를 받았을 때 각자의 방식으로 동작하는 능력
다형성을 사용하면 코드를 간결하게 할 수 있고 구체적으로 현재 어떤 클래스 객체가 참조되는지와 무관하게 프로그래밍을 할 수 있어서 변화에 유연하게 대처할 수 있다.
- SOLID 원칙
SRP(단일 책임 원칙), OCP(개방-폐쇄 원칙), LSP(리스코프 치환 원칙), DIP(의존 역전 원칙), ISP(인터페이스 분리 원칙)을 말하며, 앞자를 따서 SOILD 원칙이라고 부른다. 프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 소프트웨어를 만드는데 이 원칙들을 적용할 수 있다.
-
Single Responsibility Principle: 소프트웨어의 설계 부품은 단 하나의 책임만을 가져야 한다.
-
Open-Closed Principle (개방-패쇄 원칙): 기존의 코드를 변경하지 않고(Closed) 기능을 수정하거나 추가할 수 있도록(Open) 설계해야 한다.
-
Liskov Substitution Principle (리스코프 치환 원칙): 자식 클래스는 부모클래스에서 가능한 행위를 수행할 수 있어야 한다.
-
Dependency Inversion Principle (의존 역전 원칙): 의존 관계를 맺을 때, 변화하기 쉬운 것 보단 변화하기 어려운 것에 의존해야 한다는 원칙이다.
-
Interface Segregation Principle (인터페이스 분리 원칙: 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다. 하나의 일반적인 인터페이스보다는, 여러 개의 구체적인 인터페이스가 낫다.
Subscribe via RSS