정리안된 디자인패턴
스트래티지 패턴 (strategy pattern): 교환 가능한 행동을 캡슐화하고 위임(Delegate)을 통해서 어떤 행동을 사용할지 결정한다. 스프링에서 생각해보면, 서비스 인터페이스에 @Autowired로 DI를 통해 사용한 것과 일치한다. 서비스는 인터페이스를 통해서 로직을 구성할 수 있으면 실질적인 구현체는 몰라도 된다. 스프링의 어플리케이션 컨텍스트가 구현체를 주입해주기 때문이다. 이를 통해서 객체간 결합이 느슨해질 수 있다. 플라이웨이트 패턴 (flyweight pattern): 어떤 클래스의 인스턴스 한 개만가지고 여러 개의 "가상 인스턴스"를 제공하고 싶을 때: String.valueOf() 어댑터 패턴 (adaptor pattern): 객체를 감싸서 다른 인터페이스를 제공한다.: 기존의..