6장. 스프링이 사랑한 디자인 패턴
스프링에서 지원하는 여러 특징들은 어떻게 설계 되었을까? 이 챕터는 디자인패턴으로 그 내면을 유추해볼 수 있다.
어댑터 패턴
어댑터 패턴은 언제 쓰일까?
어떻게 적용할까? 아래 상황을 가정하고, 어댑터 패턴을 적용하여 해결하는 코드를 작성한다.
public interface Database {
void save();
void delete();
}
public class LegacyRdbmsRepository {
public void insert() {
System.out.println("insert");
}
public void update() {
System.out.println("update");
}
public void select() {
System.out.println("select");
}
public void delete() {
System.out.println("remove");
}
public void create() {
System.out.println("create");
}
public class MongoRepository {
public void createDocument() {
System.out.println("Creating document in MongoDB");
}
public void readDocument() {
System.out.println("Reading document from MongoDB");
}
public void updateDocument() {
System.out.println("Updating document in MongoDB");
}
public void deleteDocument() {
System.out.println("Deleting document from MongoDB");
}
}프록시 패턴

데코레이터 패턴
싱글턴 패턴
템플릿 매서드 패턴
팩터리 메서드 패턴
전략 패턴
템플릿 콜백 패턴
Last updated