본문

[2017.09.06] 03-5. OOP의 5대원칙 - DIP

5. DIP - Dependency Inversion Principle


개념


  1. 상위 모듈이 하위 모듈에 의존하면 안된다. 둘 다 추상화에 의존해야한다.
  2. 추상화된 것이 구체적인 것에 의존하면 안된다. 구체적인 것이 추상화에 의존해야한다.

추상화에 의존해야한다는 것은 상위 모듈이 하위 모듈을 생성 할 때 객체를 직접 생성하는 것이 아니라 Interface나 abstract를 통해 생성한다는 것을 의미한다. 


실습

DIP 원칙 적용 전

DIP 원칙 적용 후

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Add {
    public void add (int a, int b) {
        System.out.println("++합은 " 
                + a + b + "입니다.++");
    }
}
 
class Calculator {
    private Add addClass;
    
    Calculator() {
        addClass = new Add();
    }
    
    public void add (int a, int b) {
        addClass.add(a, b);
    }
}
cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
interface Iadd {
    void add(int a, int b);
}
 
class Add implements Iadd {
 
    @Override
    public void add(int a, int b) {
        System.out.println("++ Sum is "
                     + a + b + ".");
    }
}
 
class Calculator {
    private Iadd addClass;
    
    Calculator() {
        addClass = new Add();
    }
    
    public void add (int a, int b) {
        addClass.add(a, b);
    }
}
cs




#DIP #OOP #JAVA SOLID #JAVA OOP


공유

댓글