[디자인 패턴] 프록시 패턴 (Proxy Pattern)

KangHo Lee's avatar
Nov 13, 2024
[디자인 패턴] 프록시 패턴 (Proxy Pattern)
💡
다른 객체에 대한 접근을 제어하는 대리 객체를 제공하는 패턴입니다.

1. 소스 코드

package ch02; public abstract class Animal { public abstract String getName(); } package ch02; // 고양이 public class Cat extends Animal { private String name = "고양이"; public String getName() { return name; } } package ch02; // 쥐 public class Mouse extends Animal { private String name = "쥐"; public String getName() { return name; } } package ch02; // SRP(Single Responsibility Principle, 단일 책임 원칙) public class Doorman { public void 쫓아내(Animal animal) { System.out.println(animal.getName()+" 쫓아내"); } } package ch02; public class DoormanProxy { private Doorman doorman; public DoormanProxy(Doorman doorman) { this.doorman = doorman; } public void 쫓아내(Animal animal) { System.out.println("안녕"); doorman.쫓아내(animal); } } package ch02; // main public class App { public static void main(String[] args) { Doorman doorman = new Doorman(); // 의존성 주입(매개변수로 Doorman을 받는다) DoormanProxy doormanProxy = new DoormanProxy(doorman); Cat cat = new Cat(); Mouse mouse = new Mouse(); doormanProxy.쫓아내(cat); doormanProxy.쫓아내(mouse); } }

2. 대리인 DoormanProxy 객체

  • 매개변수로 Doorman 객체를 받습니다. (의존성)
  • Doorman 대신 cat과 mouse를 쫓아냅니다.
 
Share article

devleekangho