[스프링프레임워크3.X IoC 강좌2]Spring IoC, 스프링 IoC, 스프링제어역행, Spring Framework3.2
Inversion Of Control
구현을 인터페이스 뒤로 숨기기
결합도를 낮추는 일반적인 기법은 구체적인 구현 내용을 인터페이스의 뒤로 숨김으로써, 클라이언트 클래스에 영향을 주지 않고도 실제 구현
클래스가 교체될 수 있도록 하는 것
1. CarMaker Interface 작성
package edu.biz.ioc;
public interface CarMaker {
public Car sell(Money money) ;
}///~
public Car sell(Money money) ;
}///~
2. HyundaiMaker가 CarMaker 인터페이스 구현하도록 수정
package edu.biz.ioc;
public class HyundaiMaker implements CarMaker{
public HyundaiMaker() {
}//:
}//:
public Car sell(Money money) {
System.out.println("I sold a car.");
Car car = new Car("Sonata");
return car;
}
}///~
System.out.println("I sold a car.");
Car car = new Car("Sonata");
return car;
}
}///~
3. OrderManager가 인터페이스를 사용하도록 수정
package edu.biz.ioc;
public class OrderManager {
//만약 인터페이스를 사용하지 않는다면 HyundaiMaker 다른 메이커로 교체된다//면 아래의 private CarMaker maker를 포함하여 소스코드가 수정되어야 하지만 //인터페이스를 사용한다면 new HyundaiMaker () 부분만 수정하면 된다.
private CarMaker maker;
//만약 인터페이스를 사용하지 않는다면 HyundaiMaker 다른 메이커로 교체된다//면 아래의 private CarMaker maker를 포함하여 소스코드가 수정되어야 하지만 //인터페이스를 사용한다면 new HyundaiMaker () 부분만 수정하면 된다.
private CarMaker maker;
public OrderManager() {
this.maker = new HyundaiMaker(); //나중에 다름 new DaewooMaker()로 수정하면 된다.
}
this.maker = new HyundaiMaker(); //나중에 다름 new DaewooMaker()로 수정하면 된다.
}
public void order() {
Car car = this.maker.sell(new Money(1000));
}
Car car = this.maker.sell(new Money(1000));
}
}///~
>>>[개강안내]오라클자바커뮤니티에서 운영하는 개발자 전문교육 ,개인80%환급[www.onjprogramming.co.kr]
[평일저녁9/26]Spring3.X, MyBatis, Hibernate실무과정
[주말9/28] 웹퍼블리싱 마스터
[주말9/28]자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
[주말9/28]SQL초보에서실전전문가까지
[주말9/28]C#,ASP.NET마스터
[평일저녁9/26]Spring3.X, MyBatis, Hibernate실무과정
[주말9/28] 웹퍼블리싱 마스터
[주말9/28]자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
[주말9/28]SQL초보에서실전전문가까지
[주말9/28]C#,ASP.NET마스터
오라클자바커뮤니티에서 설립한 개발자교육6년차 오엔제이프로그래밍 실무교육센터
(오라클SQL,튜닝,힌트,자바프레임워크,안드로이드,아이폰,닷넷 실무개발강의)
댓글 없음:
댓글 쓰기