程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 輕松控制Java署理形式

輕松控制Java署理形式

編輯:關於JAVA

輕松控制Java署理形式。本站提示廣大學習愛好者:(輕松控制Java署理形式)文章只能為提供參考,不一定能成為您想要的結果。以下是輕松控制Java署理形式正文


界說:為其他對象供給一種署理以掌握對這個對象的拜訪。在某些情形下,一個對象不合適或許不克不及直接援用另外一個對象,而署理對象可以在客戶端和目的對象之間起到中介的感化。

特色:

1、真實的腳色就是完成現實的營業邏輯,不消關懷其他非本職責的事務,經由過程前期的署理完成一件完成事務,附帶的成果就是編程簡練清楚。

2、署理對象可以在客戶端和目的對象之間起到中介的感化,如許起到了中介的感化和掩護了目的對象的感化。

3、擴大性高

企業級開辟和經常使用框架中的運用:最有名的就是spring的aop,還有spring的bean的創立其實也用到了署理

署理形式分為了靜態署理和靜態署理,靜態署理是開辟中運用的特殊多。

靜態署理:

/**
 * 以買房舉例
 */
interface Actions {

 /**
 * 選房
 */
 public void selectHouse();
 
 /**
 * 看房
 */
 public void seeHouse();
 
 /**
 * 入住
 */
 public void ruzhu();
 
}

class RealRole implements Actions{

 public void selectHouse() {
 System.out.println("用戶本身選房");
 }

 public void seeHouse() {
 System.out.println("用戶本身看房");
 }

 public void ruzhu() {
 System.out.println("用戶本身入住");
 }

}

class ProxyRole implements Actions{

 private RealRole realRole;
 
 public ProxyRole(RealRole realRole) {
 this.realRole = realRole;
 }
 
 public void selectHouse() {
 System.out.println("中介選房");
 }

 public void seeHouse() {
 System.out.println("中介看房");
 }

 @Override
 public void ruzhu() {
 realRole.ruzhu();
 }

}

public class Demo {

 public static void main(String[] args) {
 RealRole realRole = new RealRole();
 ProxyRole proxyRole = new ProxyRole(realRole);
 proxyRole.selectHouse();
 proxyRole.seeHouse();
 proxyRole.ruzhu();
 }
}

靜態署理:

/**
 * 以買房舉例
 */
interface Actions {

 /**
 * 選房
 */
 public void selectHouse();
 
 /**
 * 看房
 */
 public void seeHouse();
 
 /**
 * 入住
 */
 public void ruzhu();
 
}

class RealRole implements Actions{

 public void selectHouse() {
 System.out.println("用戶本身選房");
 }

 public void seeHouse() {
 System.out.println("用戶本身看房");
 }

 public void ruzhu() {
 System.out.println("用戶本身入住");
 }

}

class Handler implements InvocationHandler{

 private RealRole realRole ;
 
 public Handler(RealRole realRole) {
 this.realRole = realRole;
 }
 
 public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
 System.out.println(realRole);
 System.out.println("中介選房,看房");
 method.invoke(realRole, args);
 return null;
 }

}

public class Demo {

 public static void main(String[] args) {
 RealRole realRole = new RealRole();
 
 Handler handler = new Handler(realRole);
 
 Actions proxy = (Actions) Proxy.newProxyInstance(ClassLoader.getSystemClassLoader(), new Class[]{Actions.class}, handler);
 proxy.ruzhu();
 }
}

以上就是本文的全體內容,願望對年夜家的進修有所贊助,也願望年夜家多多支撐。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved