OOP(Object Oriented Programming) 객체지향 프로그래밍
이전의 프로그래밍 패러다임은 중심이 컴퓨터에 있지만, 객체지향 프로그래밍은
현실세계를 프로그래밍으로 옮긴 인간 중심적 프로그래밍 방식이다
특징
캡슐화 : 함수와 변수를 묶어 객체를 만들고 객체과 객체끼리 상호통신이 가능하도록 하며,
캡슐 속 객체는 외부에서 참조할 수 없도록 하는 은닉화라는 특징을 갖는다
상속성 : 부모클래스의 멤버를 자손클래스가 상속받는 것으로 코드의 재사용성을 의미한다
다형성 : 하나의 객체가 다양한 형태를 갖는다. 부모 클래스의 참조변수로 자손 클래스를 다룬다.
추상화 : 객체의 공통적인 기능이나 속성을 묶어 명시적인 이름을 부여하는 것으로 필요한 것은 사용하고
불필요한 것은 제거한다.
객체지향 프로그래밍 5대 원칙 정리
SRP(Single Responsibility Principle) : 단일 책임 원칙
-하나의 클래스(객체)는 하나의 책임만 갖는다, 변경하는 이유도 하나의 이유여야 한다.
OCP(Open-Closed Principle) : 개방 폐쇄 원칙
-다형성을 활용하여 역할과 구현을 분리한다
-확장에는 열려있고, 변경에는 닫혀있어야 한다
-->기존의 코드를 변경하지 않으면서 기능을 추가할 수 있어야 한다
LSP(Liskov Substitution Principle) : 리스코프 치환 원칙
-객체는 정확성을 깨지 않으면서 하위 타입의 인스턴스로 변경 가능해야한다
--> 상위 타입의 객체를 하위 타입의 객체로 치환해도 상위 타입을 사용하는 프로그램은 정상적으로 동작해야 한다
ISP(Interface Segregation Principle) : 인터페이스 분리 원칙
-하나의 클라이언트를 위한 인터페이스 여러개가 범용 인터페이스보다 낫다
--> 인터페이스를 클라이언트에 특화되도록 분리(배우는 맡은 배역만 수행해야지 캐스팅까지 맡아서는 안 된다)
DIP(Dependency Inversion Principle) : 의존관계 역전 원칙
-"추상화에 의존하고 구체화에 의존하지 마라"
-->의존관계를 맺을 때 변화하기 쉬운 것 또는 자주 변화하는 것보다는 변화하기 어려운 것, 거의 변화가 없는 것에 의존하라는 의미이다
'백엔드' 카테고리의 다른 글
TIL 정리_54 (0) | 2022.04.10 |
---|---|
TIL 정리_53(TDD) (0) | 2022.04.09 |