1. 일반 인터페이스 정의
/** * 定义通用接口 * @author Administrator * @date 2018/7/22 */ public interface IBusiness { /** * 接口执行方法 */ void execute(); }
2. 실제 작업 구현 클래스 정의
/** * 真实操作实现类 * @author Administrator * @date 2018/7/22 */ public class BusinessImpl implements IBusiness{ @Override public void execute() { System.out.println("真正执行操作......"); } }
3. 정적 프록시 작업
/** * 静态代理 * @author Administrator * @date 2018/7/22 */ public class ProxyBusiness implements IBusiness{ /** * 定义需要执行的接口 */ private IBusiness business; /** * 通过set方法传参,真实需要执行的对象 */ public void setBusiness(IBusiness business) { this.business = business; } /** * 代理对象执行操作 */ @Override public void execute() { if(business == null){ System.out.println("实际操作对象为null"); return; } before(); business.execute(); after(); } /** * 执行操作前 */ public void before(){ System.out.println("执行操作前......"); } /** * 执行操作后 */ public void after(){ System.out.println("执行操作后......"); } /** * 测试 */ public static void main(String[] args) { ProxyBusiness proxyBusiness = new ProxyBusiness(); BusinessImpl business = new BusinessImpl(); proxyBusiness.setBusiness(business); proxyBusiness.execute(); } }
요약: 정적 프록시는 일반 인터페이스를 구현하는 다양한 구현 클래스를 통해 관련 프록시를 완성할 수 있습니다. 동일하지 않습니다. 일반 인터페이스가 유효하지 않습니다. 많은 인터페이스와 프록시 클래스를 구현해야 하므로 유지 관리가 불편한 대규모 프록시 인터페이스와 구현 클래스가 생성됩니다. 동적 프록시를 사용하는 것이 좋습니다.
위 내용은 Java 디자인 패턴에 대한 심층 설명 - 정적 프록시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!