Java(폐지)/spring 책
코드 작성
kyeongjun-dev
2020. 8. 6. 13:40
스프링을 적용하지 않은 방식의 기존 자바 코드
- 클래스 다이어그램

- 시퀀스 다이어그램

소스 코드
- Tire.java
package expert001_01;
public interface Tire {
String getBrand();
}
- KoreaTire.java
package expert001_01;
public class KoreaTire implements Tire {
public String getBrand() {
return "코리아 타이어";
}
}
- AmericaTire.java
package expert001_01;
public class AmericaTire implements Tire{
public String getBrand() {
return "미국 타이어";
}
}
- Car.java
package expert001_01;
public class Car {
Tire tire;
public Car() {
tire = new KoreaTire();
// tire = new AmeriacTire();
}
public String getTireBrand() {
return "장착된 타이어: " + tire.getBrand();
}
}
- Driver.java (main)
package expert001_01;
public class Driver {
public static void main(String[] args) {
Car car = new Car();
System.out.println(car.getTireBrand());
}
}
- 실행 결과
장착된 타이어: 코리아 타이어
JUnit test 코드
- /src/test/java/expert001_01/CarTest.java
package expert001_01;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
class CarTest {
@Test
void 자동차_장착_타이어브랜드_테스트() {
//fail("Not yet implemented");
Car car = new Car();
assertEquals("장착된 타이어: 코리아 타이어", car.getTireBrand());
}
}
- 실행 결과

정리
- 자동차는 타이어에 의존한다.
- 운전자는 자동차를 사용한다.
- 운전자가 자동차에 의존한다고 봐도 된다.
- 자동차의 생성자 코드에서 tire 속성에 새로운 타이어를 생성해서 참조할 수 있게 했다.