(15) 방문 자 모드

4056 단어 디자인 모드
나 는 방문 자 모델 이 바로 인터페이스 로 실체 류 를 연결 시 켜 실체 류 에 창 을 만들어 인터페이스의 실현 류 에 접근 할 수 있 고 실체 류 에 대해 조작 을 할 수 있다 는 것 을 이해한다.
public class Priority {
	private Long id;
	private String name;
	// get and set
	public <T> T execute(PriorityOperation<T> operate) {
		return operate.doExecute(this);
	}
}

이 를 통 해 알 수 있 듯 이 Priority Operation 은 하나의 인터페이스 로 여러 방문 자 실현 유형 으로 모든 실현 유형 에 doExecute 방법 이 있다. 여기 서 실체 류 를 이 방법 에 직접 전달 하면 방문 자 는 실체 류 를 조작 할 수 있다.
구체 적 인 service 를 사용 할 때 이 실체 류 만 얻 은 다음 에 방문 자로 그 조작 을 할 수 있 습 니 다. 예 를 들 어 제 가 권한 을 삭제 하고 싶 습 니 다. 이렇게 사용 하면 코드 는 제 가 서술 한 것 처럼 대상 을 대상 으로 하 는 디자인 사상 에 부합 되 고 권한 실체 류 를 얻 을 수 있 습 니 다. 검 측 방문 자 를 얻 을 수 있 습 니 다. 검 측 권한 이 관련 이 있 는 지 없 는 지 검 측 하고 방문 자 를 삭제 할 수 있 습 니 다.삭제 권한
Priority priority = priorityService.getById(id);
//            
RelatedCheckPriorityOperation relatedCheckOperation = context.getBean(RelatedCheckPriorityOperation.class);
Boolean relateCheckResult = priority.execute(relatedCheckOperation);	
if(relateCheckResult) {
	return false;
}
//                   
RemovePriorityOperation removeOperation = context.getBean(RemovePriorityOperation.class);
priority.execute(removeOperation);
return true;

좋은 웹페이지 즐겨찾기