어댑터 패턴서로 다른 두 인터페이스가 함께 동작할 수 있도록 중개역할하는 디자인 패턴변환기 or 중개자 역할OOP 원칙 중 하나인 OCP ( 개방 - 폐쇄 원칙 ) 을 따른다.일상생활 예시 : 충전기충전기휴대폰 ↔ 전원 콘센트 사이 어댑터 역할휴대폰과 전원 콘센트서로 다른 인터페이스충전기가 연결을 가능하게함.프로그래밍 예시 : JDBC ODBCJDBC ( Java Database Connectivity )ODBC ( Open Database Connectivity )는 여러 다른 데이터베이스 시스템 통일된 인터페이스 제공어댑터 패턴 → 개방 폐쇄 원칙JDBC 와 JRE 는 기존 시스템에 영향을 주지 않고, 다양한 DB 와 플랫폼에 쉽게 적용가능코드 예시 : 어댑터가 적용되지 않음public class S..
프록시 패턴(Proxy Pattern)대리자, 대변인누군가를 대신해 그 역할을 수행프록시 적용전public class ClientWithNoProxy { public static void main(String[] args) { // 프록시를 이용하지 않은 호출 Service service = new Service(); System.out.println(service.runSomething()); } }public class Service { public String runSomething() { return "서비스 짱!!!"; } }Service 객체의 runSomething() 메서드 직접 호출프록시 적용 후public class Service implements IService { public St..
데코레이터 패턴객체에 동적으로 새로운 책임(장식) 을 추가하는 디자인 패턴코드의 유연성 부여가능원본 객체에 여러 가지 장식을 덧입힐 수 있음.프록시 패턴과 차이프록시목적제어의 흐름 변경별도의 로직 처리클라이언트가 받는 반환값을 특별한 경우가 아니면 변경 X데코레이터클라이언트가 받는 반환값에 장식을 더함클래스 다이어그램과 시퀀스 다이어그램프록시와 데코레이터는 클래스 다이어그램 , 시퀀스 다이어그램에서 유사한 구조를 가질 수 있음.하지만, 프록시원래의 반환값 전달데코레이터반환값 자체에 변화라는 점이 다르다.코드public interface IService { public abstract String runSomething(); }public class Service implements IService { @..