디자인 모델: 대리 모델. - 학생, 숙제 내 면 수업 대표 한테 다 내 라 고 하 는 거 아니 야?

2598 단어 디자인 모드
프 록 시 모드 의 정의: 이 대상 에 대한 접근 을 제어 하기 위해 다른 대상 에 게 프 록 시 를 제공 합 니 다.
어떤 경우 에 한 대상 이 적합 하지 않 거나 다른 대상 을 직접 인용 할 수 없 으 며 대리 대상 은 클 라 이언 트 와 목표 대상 사이 에서 중개 역할 을 할 수 있다.
대리 모델 은 저 에 대한 이해 입 니 다. 우선, 이 모델 은 여러분 이 평소에 선생님 께 숙제 를 내 는 장면 이 라 고 상상 할 수 있 습 니 다.
일반 학생: 대리 되 는 유형, 일반적인 상황 에서 일반 학생 들 은 숙제 를 선생님 께 맡 기지 않 습 니 다. 선생님 도 학생 들 에 게 하나씩 숙제 를 받 을 수 없습니다.
과 대표: 일반 학생 을 대리 하여 숙제 를 내기 때문에 일반 학생 의 숙제 는 먼저 과 대표 에 게 맡 겨 야 합 니 다.선생님 과 학우 사이 의 다리
선생님: 선생님 은 과 대 표를 알 고 있 습 니 다. 과 대 표 는 숙제 를 접 고 선생님 께 맡 기 면 됩 니 다. 그러면 선생님 은 조 학생 에 게 숙제 를 하나씩 받 지 않 아 도 됩 니 다.
다음은 상세 한 코드 구현 을 보 여 드 리 겠 습 니 다. 여러분 이 잘 모 르 는 댓 글 이 있 습 니까?
HandInHomework.java
package com.luzhiming.proxy; 
/** 
 * @author strungle  E-mail: [email protected]
 * @version     :2013-6-12   10:09:46 
 * 
 *     
 */
public interface HandInHomework {
//    
	public void handInHomework();
}

Student.java
package com.luzhiming.proxy; 
/** 
 * @author strungle  E-mail: [email protected]
 * @version     :2013-6-12   10:06:26 
 *       
 */
public class Student implements HandInHomework{

	private String studentName;
	
	public String getStudentName() {
		return studentName;
	}
	public void setStudentName(String studentName) {
		this.studentName = studentName;
	}
	public Student(String studentName) {
		this.studentName = studentName;
	}
	public void handInHomework()
	{
		System.out.println(studentName + "     ");
	}
}

StudentProxy.java
package com.luzhiming.proxy; 
/** 
 * @author strungle  E-mail: [email protected]
 * @version     :2013-6-12   10:02:23 
 * 
 *       ,          
 */
public class StudentPeoxy implements HandInHomework{

	private Student student;
	public StudentPeoxy(Student student) {
		this.student = student;
	}


	@Override
	public void handInHomework() {
		System.out.println("     ,      "+student.getStudentName() +"   ");
		student.handInHomework();
		System.out.println("     ,    "+student.getStudentName()+"      ");
	}

	
}

UseCase. java 는 UseCase 가 선생님 이 라 고 생각 할 수 있 습 니 다.
package com.luzhiming.proxy; 
/** 
 * @author strungle  E-mail: [email protected]
 * @version     :2013-6-12   10:15:53 
 * 
 */
public class UseCase {

	public static void main(String[] args) {
		Student s1 = new Student("zhangsan");
		StudentPeoxy sp = new StudentPeoxy(s1);
//		    
		/**
		 *
		      ,      zhangsan   
		zhangsan     
		     ,    zhangsan      
		 */
		sp.handInHomework();
	}
}

좋은 웹페이지 즐겨찾기