스프링 등장 배경, 객체지향 보충자료
1. OCP(Open/Closed Principle, 개방-폐쇄 원칙)
1.1 OCP란?
1.2 OCP와 다형성
// 역할 정의
public interface Ingredient {
String getIngredient();
}
// 구현 클래스
public class RedBean implements Ingredient {
public String getIngredient() {
return "Red Bean";
}
}
public class Cream implements Ingredient {
public String getIngredient() {
return "Cream";
}
}
// 붕어빵 생성
public class BungeoppangMaker {
private final Ingredient ingredient;
public BungeoppangMaker(Ingredient ingredient) {
this.ingredient = ingredient;
}
public void make() {
System.out.println("Making Bungeoppang with " + ingredient.getIngredient());
}
}
// 새로운 재료를 추가해도 기존 코드는 수정할 필요 없음
public class Chocolate implements Ingredient {
public String getIngredient() {
return "Chocolate";
}
}1.3 OCP 구현 시 주의점
3. DIP(Dependency Inversion Principle, 의존성 역전 원칙)
3.1 DIP란?
3.2 DIP와 의존성 주입(DI)
3.3 DIP와 스프링
Last updated