Proxy Pattern Proxy Pattern정 의☞ 프록시 객체 : 내가 수행할 기능을 대신 수행해주는 객체☞ 오리지널 객체 : 내가 수행할 기능을 구현하는 클래스 객체 프록시패턴 구현1. 오리지널 객체가 수행할 기능에 대한 껍데기를 인터페이스로 정의하고 구현2. 오리지널 객체가 구현한 인터페이스를 프록시객체도 구현3. 프록시 객체의 구현함수에서 오리지널객체의 구현함수를 호출 오리지널객체를 바로 호출해도 되지만 프록시 객체를 굳이 거쳐서 오리지널을 호출 하는 이유는??프록시 객체에서 객체에 대한 전후 작업처리를 할 수 있음.. 예를 들어 객체가 NULL이면 생성해서 호출 Not NULL이면 그냥 객체 호출하지만 오리지널 객체를 호출하면 그 때마다 Not NULL 검사를 해줘야 하는 번거로움
전략패턴 전략패턴 = 의존성 역전 + 리스코프 치환원칙( 느슨한 결합 ) ▶의존성 역전1234567891011121314package di02_2; public class Kid { public static void main(String[] args) { Attackable attack = new PunchAttack(); Robot robot = new Robot(attack); //생성자에 주입 Constructor Injection // robot.setAttack(attack); // 세터에 주입 Setter Injection robot.fight(); } }Colored by Color Scriptercs☞ 내가 생성해야될 객체를 내가 만들지 않고 나를 사용하는 놈이 객체를 대신 생성해서 나한테..
빌더패턴 (Builder Pattern) 개요빌더패턴이란 ? 객체를 생성 시 생성자를 깔끔하고 직관적으로 확인하기 위한 기법메소드 체이닝 기법을 활용하여 객체를 생성함 Builder패턴 예제 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485public class User { private final Long seq; private final String name; private final Email email; public User(String name, Email e..
템플릿 메소드 패턴 템플릿 메소드 패턴 정 의하위클래스의 여러 클래스 들이 공통되는 사항을 상위 추상 클래스에서 구현하고, 상세한 기능들은 각 하위 클래스에서 구현함 사용이유코드의 중복을 줄이고 효율적인 코드관리가 가능 단 점상위클래스의 구조(템플릿)에 대한 재사용은 잘 이뤄지지만, 하위 클래스의 상세한 기능들을 재사용하기 어려움▶ 하위 클래스의 상세한 기능들의 코드를 재사용 불가 기능을 재사용하려면 하위 클래스의 상세한 기능들을 클래스로 따로 지정해야함 해결방안단일 책임 원칙한 클래스는 하나의 책임만 가져야 한다▶ 클래스를 각각 만들어 따로 상세한 기능을 지정하여 재사용Class Robot123456789101112131415161718192021222324252627282930 package d02;..