J2EE(9) 정적 에이전트와 동적 에이전트-간접적'미'
2492 단어 동적 에이전트
간접 제어 대상의 상호작용은 중요한 프로그래밍 사상으로 많은 모델이 이런 사상을 구현했다. 예를 들어 장식 모델, 어댑터 모델, 대리 모델은 모두 간접적인 방식으로 특정한 목적을 실현한다.
여기서 주로 에이전트 모델을 소개하는데 현실 생활에서든 컴퓨터 기술에서든 에이전트를 사용하는 곳이 매우 많은데 주로 정적 에이전트와 동적 에이전트로 나뉜다.
우리는 모두 기방 요금 시스템을 해 봤다. 이 시스템을 예로 들면 이 시스템에는 사용자가 조작하는 사용자 인터페이스 IUser와 이 인터페이스를 실현한 클래스 UserImp이 있다. 자바 코드는 다음과 같다.
/**
*
* @author LLS
*
*/
public interface IUser
{
//
void addUser();
//
void delUser();
}
사용자 구현 클래스/**
*
* @author LLS
*
*/
public class UserImpl implements IUser
{
public void addUser() {
//
}
public void delUser() {
//
}
}
이 예에서 우리는 사용자를 추가하거나 삭제할 때 권한 검사를 해야 할 수도 있다. 권한에 부합되는 사람은 관련 동작을 수행할 수 있다. 그렇지 않으면 실행할 수 없다. 그러면 코드를 어떻게 수정해야 더욱 적절하게 할 수 있는지, 그리고 실제 작성 과정에서 권한 모듈이 필요하지만 때로는 더욱 빠른 테스트를 위해 권한 모듈을 잠시 닫기를 원한다.어떻게 해야만 이런 임시 수요를 더욱 쉽게 처리할 수 있습니까?우리는 현재 프록시 모드를 사용하여 이러한 작업을 완성하고 있으며, 현재는 UserImplProxy라는 클래스를 계속 작성합니다.
사용자 에이전트 클래스
/**
*
* @author LLS
*
*/
public class UserImplProxy implements IUser
{
//
private UserImpl userImpl;
//
public void addUser()
{
//
preIdentify();
if( userImpl == null )
{
userImpl = new UserImpl();
}
//
userImpl.addUser();
// ,
postIdentify();
}
public void delUser()
{
preIdentify();
if( userImpl == null )
{
userImpl = new UserImpl();
}
userImpl.addUser();
postIdentify();
}
//
private void preIdentify()
{
System.out.println(" !");
}
//
private void postIdentify()
{
System.out.println(" ");
}
}
이렇게 하면 권한 검증 기능을 쉽게 실현할 수 있고 매우 유연하다.위쪽은 정적 프록시 모드입니다. 프록시 대상이 동적 프록시를 사용할 수 있는지 모르면... 업데이트 중
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java 동적 에이전트 및 CGLIB 상세 설명2. 동적 에이전트 클래스는 정적 에이전트보다 에이전트 클래스가 원 인터페이스를 실현하지 않고 InvocationHandler를 실현하는 것을 알 수 있습니다.통과 동적으로 프록시 클래스를 생성합니다. 이렇게 하면 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.