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 | 31 |
Tags
- 백준
- 주식
- S&P500
- 프로그래머스
- object
- 금리인상
- 현금흐름표
- 무디스
- 접근제어자
- 미국주식
- 객체지향
- FCF
- 잉여현금흐름
- mco
- javascript
- etf
- 자바
- StringBuffer
- 알고리즘
- 주린이
- 다형성
- 기업분석
- 그리디 알고리즘
- 금리인하
- 오버라이딩
- 배당성장
- Java
- XLF
- 인플레이션
- 제태크
Archives
- Today
- Total
오늘의하루
(객체 지향 설계) 순수 자바로 DIP 원칙 지키기 본문
객체 지향 설계에서 DIP는 의존 관계 역전 원칙을 의미한다.
- 프로그래머는 추상화에 의존해야하며 구체화에 의존하면 안되는다는 말이다.
public class Test{
TestInterface ti = new TestObject();
}
위와 같이 다형성을 이용하여 작성하면 DIP를 위반하는 행위가 된다.
- 현재 Test 클래스는 인터페이스와 구현체 두가지 모두에 의존하고 있는 상황이다.
이를 해결 하기 위해서는 Test클래스는 추상화만 의존하게 만들어줘야 한다.
public class Test{
// 현재 Test 클래스는 추상화에만 의존하고 있다.
TestInterface ti;
Test(TestInterface ti){
this.ti = ti;
}
}
public class AppConfig{
// 설정(기획)을 하는 클래스를 하나 만들어 준다.
private TestInterface ti(){
return new TestObject();
}
private TestInterface ti2(){
retrun new TestObject2();
}
// 다른 구현체를 넣어도 Test클래스의 변경이 필요없다.
// 이로써 OCP문제도 해결할 수 있게 된다.
public Test test(){
return new Test(ti());
// return new Test(ti2());
}
}
public class Main{
public static void main(String[] args){
AppConfig appConfig = new AppConfig();
Test t = appConfig.test();
}
}
'JAVA' 카테고리의 다른 글
AOP - java.lang.ClassCastException (0) | 2024.02.23 |
---|---|
Type safety: Unchecked cast from ~ (0) | 2024.02.16 |
Java Scanner 몰랐던 부분 (0) | 2023.01.30 |
[Java]import never used 경고문구 (0) | 2023.01.27 |
[구름 ide / Linux] 리눅스 자바 설치 및 환경 변수 설정하기 (0) | 2023.01.05 |
Comments