일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- 배포
- 프로그래머스
- 피로그래밍
- 크루스칼
- EC2
- union find
- OrderBy
- GROUPBY
- django
- Java
- 그래프 탐색
- 구현
- SQL코딩테스트
- 최단경로
- Baekjoon
- MST
- AWS
- 다익스트라
- Database
- 백준
- 알고리즘
- 누적합
- BFS
- 코딩테스트
- 프림
- SQL
- db
- 자바
- Pirogramming
- JOIN
Archives
- Today
- Total
NullNull
객체지향 언어의 특징과 설계 원칙 본문
객체지향 언어의 특징
- 캡슐화 : 객체의 속성과 메서드를 하나로 묶고 일부를 외부에 감추어 은닉하는 것
- 추상화 : 복잡한 시스템으로부터 핵심적인 개념 또는 기능을 간추려내는 것
- 상속성 : 상위 클래스의 특성을 하위 클래스가 이어 받아서 재사용하거나 추가, 확장하는 것
- 다형성 : 하나의 메서드나 클래스가 다양한 방법으로 동작하는 것. 하나의 객체가 여러 형으로 나타날 수 있는 것
- 오버로딩 : 같은 이름을 가지는 메서드를 여러개 두는 것 (정적 다형성)
- 오버라이딩 : 상위 클래스로부터 상속받은 메서드를 하위 클래스가 재정의 하는 것 (동적 다형성)
객체지향 설계원칙 (SOLID)
- SRP: Single Responsibility Principle 단일 책임
- 하나의 클래스는 한 가지의 책임만을 가져야 한다.
- 클래스를 수정할 때에도 그 클래스와 관련된 이유여야 한다.
- OCP: Open Closed Principle 개방 폐쇄 원칙
- 확장에는 열려있고 수정에는 닫혀있어야 한다.
- 요구사항이 변경될 때 새로운 동작을 추가하여 애플리케이션의 기능을 확장한다.
- 기존의 코드를 수정하지 않고 애플리케이션의 동작을 추가하거나 변경할 수 있다.
- LSP: Liskov Substitution Principle 리스코프 치환 원칙
- 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.
- 상위 타입의 객체를 하위 타입의 객체로 치환해도 상위 타입을 사용하는 프로그램은 정상적으로 동작해야 한다.
- ISP: Interface Segregation Principle 인터페이스 분리원칙
- 하나의 일반적인 인터페이스보다 구체적인 여러 개의 인터페이스를 만들어야 한다.
- 인터페이스는 그 인터페이스를 사용하는 클라이언트를 기준으로 분리하여 목적과 용도에 적합한 인터페이스만을 제공한다.
- DIP: Dependency Inversion Principle 의존 역전 워칙
- 자신보다 변하기 쉬운 것에 의존하던 것을 추상화된 인터페이스나 상위 클래스를 두어 변하기 쉬운 것의 변화에 영향받지 않게 한다.
- 고수준 모듈은 저수준 모듈의 변화에 대한 구현으로부터 독립되어야 한다.
- 고수준 모듈 : 인터페이스와 같은 객체의 형태나 추상적 개념
- 저수준 모듈 : 구현된 객체
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
ObjectMother 패턴 적용하기 (0) | 2024.04.04 |
---|---|
간단한 Unit Test 작성하기 (0) | 2024.04.04 |
예외 처리 (0) | 2022.08.14 |
Abstract class vs Interface (0) | 2022.08.14 |
JAVA 노드 스트림 & 보조 스트림 (0) | 2022.07.31 |
Comments