헤드퍼스트 디자인 패턴 11장 | 프록시 패턴 - 객체 접근 제어하기
(에릭 프리먼 외 4인, 서환수 옮김, 한빛미디어)
패턴에서 나쁜 경찰은 프록시(proxy)입니다. 접근을 제어하고 관리하죠. ... 프록시는 자신이 대변하는 객체와 그 객체에 접근하려는 클라이언트 사이에서 여러 가지 방식으로 작업을 제어합니다.
- 459p
public class GumballMachine {
// 기타 인스턴스 변수
String location; => 위치는 그냥 String으로 저장
public GumballMachine(String location, int numberGumballs) {
// 기타 생성자 코드
this.location = location;
}
=> 위치는 생성자로 전달되어 인스턴스 변수에 저장됩니다.
public String getLocation() {
return location;
} => 위치를 알려주는 용도로 호출할 수 있는 게터 메소드 추가
GumballMonitor 클래스
public class GumballMonitor {
GumballMachineRemote machine;
public GumballMonitor(GumballMachineRemote machine) {
this.machine = machine;
}
public void report() {
try {
System.out.println("Gumball Machine: " + machine.getLocation());
System.out.println("Current inventory: " + machine.getCount() + " gumballs");
System.out.println("Current state: " + machine.getState());
뽑기 기계를 전달 받아서 그 객체를 인스턴스 변수에 저장
- 461p
원격 프록시는 원격 객체의 로컬 대변자 역할을 합니다. 원격 객체란 무엇을 뜻할까요? 다른 자바 가상 머신의 힙에서 살고 있는 객체(조금 더 일반적으로 얘기하자면 다른 주소 공간에서 돌아가고 있는 객체)를 뜻합니다. 로컬 대변자는 또 뭘까요? 로컬 대변자의 어떤 메소드를 호출하면, 다른 원격 객체에게 그 메소드 호출을 전달해주는 객체를 로컬 대변자라고 합니다.
- 464p
자바 RMI로 원격 서비스 만들기
- 470~ 520p
반응형
'Book' 카테고리의 다른 글
[독서 기록] 엘레강트 오브젝트 - 새로운 관점에서 바라본 객체 지향 2장 (0) | 2022.11.16 |
---|---|
[독서 기록] 엘레강트 오브젝트 - 새로운 관점에서 바라본 객체 지향 1장 (0) | 2022.11.16 |
[독서 기록] 헤드퍼스트 디자인 패턴 10장 | 상태 패턴 - 객체의 상태 바꾸기 (0) | 2022.11.15 |
[독서 기록] 헤드퍼스트 디자인 패턴 9장 | 컬렉션 잘 관리하기 - 반복자 패턴과 컴포지트 패턴 (0) | 2022.11.15 |
[독서 기록] 헤드퍼스트 디자인 패턴 8장 | 알고리즘 캡슐화하기 - 템플릿 메소드 패턴 (0) | 2022.11.15 |