Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 0으로 채우기
- mysql
- sort
- java 올림
- Algorithm
- java 내림
- 백준 17425
- 백준 4375
- 백준 15661
- 백준 14391
- 자바
- time complexity
- 코딩테스트
- java
- 프로그래머스 네트워크 java
- 백준 11723
- Math.ceil()
- 프로그래머스 숫자의 표현 java
- Math.floor()
- Arrays
- 백준 18290
- 알고리즘
- 프로그래머스 도둑질 java
- Codility
- java 반올림
- 네트워크
- 프로그래머스 연속된 수의 합 java
- 백준 16927
- 프로그래머스 옹알이 java
- 백준 16935
Archives
- Today
- Total
취미처럼
[DP] OCP 본문
OCP ( Open-Closed Principle ) - 개방-폐쇄 원칙
기존의 코드를 변경하지 않으면서( closed ), 기능을 추가할 수 있도록( open ) 설계가 되어야 한다는 원칙을 말한다.
즉, 확장에 대해서는 개방적이고 수정에 대해서는 폐쇄적이어야 한다는 의미를 갖는다.
이를 만족하는 설계가 되려면, 캡슐화를 통해 여러 객체에서 사용하는 같은 기능을 인터페이스에 정의하는 방법이 있다..

Animal 인터페이스를 구현한 각 클래스들은 울음소리 crying() 함수를 재정의한다.
울음소리를 호출하는 클라이언트는 다음과 같이 인터페이스에서 정의한 crying() 함수만 호출하면 된다.
public class Client {
public static void main(String args[]){
Animal cat = new Cat();
Animal dog = new Dog();
cat.crying();
dog.crying();
}
}
이렇게 캡슐화를 하면, 동물이 추가되었을 때 cyring() 함수를 호출하는 부분은 건드릴 필요가 없으면서 쉽게 확장할 수 있게 된다.
'Design Pattern' 카테고리의 다른 글
[DP] DIP (0) | 2021.03.19 |
---|---|
[DP] ISP (0) | 2021.03.19 |
[DP] LSP (0) | 2021.03.18 |
[DP] SRP (0) | 2021.03.18 |
[DP] SOLID (0) | 2021.03.18 |
Comments