[Spring] Factory를 통한 의존성 낮추기
2023. 10. 24. 17:04
728x90
factory를 통해 의존성을 낮춰보자!
일단 간단한 프로젝트 살펴보기
1. MyRoom (main)
package dev.spring.step01dependency;
public class MyRoom {
public static void main(String[] args) {
// 새로 구매한 비디오 테이프를 테스트하기 위해 테이프 리더를 생성
TapeReader reader = new TapeReader();
//테스트 수행
reader.test();
}
}
2. Tape
package dev.spring.step01dependency;
public class Tape {
String name; //테이프 이름
boolean isWorked; //정상 동작 여부
public Tape(String name, boolean isWorked) {
super();
this.name = name;
this.isWorked = isWorked;
}
public String getName() {
return name;
}
public boolean isWorked() {
return isWorked;
}
}
3. TapeReader
package dev.spring.step01dependency;
public class TapeReader {
Tape tape;// TapeReader -> (의존, dependent) Tape
// 구매한 테이프가 정상 동작하는지 테스트
public void test() {
tape = new Tape("아일랜드", true);
if (tape.isWorked) {
System.out.println(tape.getName() + " 정상 동작합니다.");
} else {
System.out.println(tape.getName() + "당하셨습니다...");
}
}
}
TapeReader 클래스는 >> Tape 클래스에 의존하고 있다.
이렇게 의존성이 있는 상황에서
FACTORY를 사용해서 의존성을 낮춰보자. 어떻게 해야할까?
MyRoom에서 new 연산자를 사용하지 않고,,,, TapeReader를 생성하고 싶다...
그 때 Factory 클래스를 따로 생성해보자.
4. TapeReaderFactory
package dev.spring.step02factory;
/*
* TapeReader를 생성해주는 공장(factory)
*/
public class TapeReaderFactory {
public static TapeReader createTapeReader() {
return new TapeReader();
}
}
> static 메소드로 만들어 어디서든 선언 가능하도록.
그리고 메인 클래스에서 Factory클래스의 createTapeReader 메소드를 가지고온다
package dev.spring.step02factory;
public class MyRoom {
public static void main(String[] args) {
// 새로 구매한 비디오 테이프를 테스트하기 위해 테이프 리더를 생성
TapeReader reader = TapeReaderFactory.createTapeReader();
//테스트 수행
reader.test();
}
}
> 그러면 메인 메소드에서 new 연산자 없이도 ~~~~ 생성하고, 메소드도 사용 가능하게 된다.
의존성이 낮아짐 !!!!!!
728x90
'Programming > Spring, SpringBoot' 카테고리의 다른 글
[Spring] XML 기반 컨테이너 구성 (0) | 2023.10.24 |
---|---|
[Spring] pom.xml 작성 (0) | 2023.10.24 |
[Spring] Dependency Injection (0) | 2023.10.24 |
스프링 시큐리티 인증 절차 (0) | 2023.09.26 |
스프링부트 프로젝트의 기본 구조 (0) | 2023.09.12 |