JAVA) 자바의 5대 원칙 & 5대 개념

Daehwan Jung·2022년 10월 5일
1

JAVA

목록 보기
12/15

JAVA

OOP(Object Oriented Programming) 객체 지향 프로그래밍

JAVA 5대 개념

  • Object(객체) : 데이터, 행위 ,아이덴티티를 가지고 있는 것

  • Classes(클래스) : 객체를 생성하는 청사진

  • Encapsulation(캡슐화) : 행위와 상태를 포장하고 외부에 노출할 것과 감출 것을 결정하는 것. 외부에 노출되는 모든것을 Interface라고 할 수 있음

  • Inheritance(상속) : 일종의 '가족관계' 표현. 자식은 부모의 자산을 이용할 수 있으며, 코드 재사용이 첫 번째 달성되는 것. 상속은 클래스의 계층 구조를 표현할 수 있게 되는데, 계층 구조는 그 구조 자체만으로는 수많은 정보를 포함할 수 있음. 계층구조를 표현하는 것이 두번째 핵심. 계층구조를 포함할 목적이 아니라면 상속을 사용해서는 안되며, 코드 재사용보다 계층 구조의 표현이 상속에서 더욱 중요한 개념.

  • Polymorphism(다형성) : 캡슐화, 상속과 함께 동작함으로써 객체지향 프로그램의 흐름제어를 객체로 처리하도록 단순화 하는 것.

JAVA 5대 원칙 : SOLID

SRP (Single Responsibility Principle) 단일 책임 원칙

클래스는 하나의 책임만 가지며, 그 클래스는 캡슐화되어야 한다.
의미 : 작성된 class는 하나의 기능만 가지며, 그 class가 제공하는 모든 서비스는 하나의 책임을 수행하는 데 집중되어야 한다.

OCP (Open-Closed Principle) 개방-폐쇄 원칙

소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.
의미 : 수정이 일어나더라도 기존의 구성요소에서는 수정이 일어나지 않아야 하며, 쉽게 확장이 가능하여 재사용을 할 수 있도록 해야한다.

LSP (Liskov Subsitution Principle) 리스코프 치환 원칙

프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다. 계약에 의한 설계를 참고하라.
의미 : 특정 메소드가 상위 타입을 인자로 사용한다고 할 때, 그 타입의 하위 타입도 문제 없이 정상적으로 작동을 해야 한다.

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

인터페이스 분리 원칙은 큰 덩어리의 인터페이스들을 구체적이고 작은 단위들로 분리시킴으로써 클라이언트들이 꼭 필요한 메서드들만 이용할 수 있게 한다.

DIP (Dependency Inversion Principle) 의존관계 역전 원칙

객체 지향 프로그래밍에서 의존관계 역전 원칙은 소프트웨어 모듈들을 분리하는 특정 형식을 지칭한다.
의미 : 상위 모듈이 하위 모듈에 의존하는 전통적인 의존 관계를 반전시킴으로써, 상위 모듈이 하위 모듈의 구현으로부터 독립되어야 한다.

0개의 댓글