| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 스프링
- di
- annotation
- GIT
- github
- 객체지향
- Spring
- viewResolver
- 객체지향프로그래밍
- xml
- Java
- macoracle
- IoCContainer
- iterm2
- 프레임워크
- 인터페이스
- 설정파일분리
- 아이텀2
- 깃허브
- Interface
- 깃커스텀
- 자바
- springframework
- git커스텀
- Sts
- URLmapping
- servlet
- oracle
- 스프링프레임워크
- 깃
- Today
- Total
목록Interface (2)
공부만이 살길
저번 포스팅에서는 위와 같은 Program을 통해 total을 출력할 때, 인터페이스를 활용해서 Class A와 B의 결합도를 낮추는 것 까지 진행했습니다. 이번 포스팅에서는 현재 상황에서 Program의 문제점과 이를 개선하는 방안을 알려드리도록 하겠습니다. 현재의 Program 코드를 보면, B b = new B(); 를 통해, A가 결합하여 사용하는 Interface X가 참조하는 B를 Program에서 생성자를 통해 지정하고 있는 것을 알 수 있습니다. 그런데, Interface X가 더 나은 Class C를 만들게 되어, 이 Class를 교체하여 사용하는 경우를 한번 가정해볼까요? 위의 상황처럼 Program의 코드까지 변경해야 하는 상황이 오게 됩니다. 이런 경우에는 유지보수를 하기에는 정말 ..
자바 프로그래밍에서의 인터페이스를 활용한 개발이란, 프로그램의 클래스의 수정이 있을 때, 실행하는 프로그램의 코드 수정 없이 간편하게 외부 설정파일만을 수정하여 유지보수를 용이하게 만드는 것을 말한다. 여기 예제를 보면서 확인해보자. 위 Program 클래스는 A라는 인스턴스를 생성하여, a 내부의 print() 메소드를 호출해 실행하고 있다. A 라는 Class는 B라는 객체를 활용해서 print() 를 정의하고 있다. A 생성자 안에서 B라는 인스턴스를 정의 하고 있다. B 에서는 total() 메소드를 통해 30이라는 값을 return 하고 있다. 위 3개의 java 프로그램은 Program을 실행하여 결과적으로 30을 출력하는 프로그램이지만, 그 안을 들여다보면 A와 B는 서로간의 사이에서 아주 ..