国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術(shù)及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 23種設(shè)計模式(7) java代理模式

23種設(shè)計模式(7) java代理模式

2021-02-02 11:29阿木俠 Java教程

這篇文章主要為大家詳細介紹了23種設(shè)計模式之java代理模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下

23種設(shè)計模式第七篇:java代理模式

定義:

為其他對象提供一種代理以控制對這個對象的訪問。在某些情況下,一個對象不適合或者不能直接引用另一個對象,而代理對象可以在客戶端和目標對象之間起到中介的作用 

角色:

1、抽象角色:聲明真實對象和代理對象的共同接口。
2、代理角色:代理對象角色內(nèi)部含有對真實對象的引用,從而可以操作真實對象,同時代理對象提供與真實對象相同的接口以便在任何時刻都能代替真實對象。同時,代理對象可以在執(zhí)行真實對象操作時,附加其他的操作,相當于對真實對象進行封裝。
3、真實角色:代理角色所代表的真實對象,是我們最終要引用的對象。 

分類:

靜態(tài)代理

靜態(tài)代理也就是在程序運行前就已經(jīng)存在代理類的字節(jié)碼文件,代理類和委托類的關(guān)系在運行前就確定了。 

示例: 

抽象角色,真實對象和代理對象共同的接口

?
1
2
3
4
public interface UserInfo{ 
    public void queryUser (); 
    public void updateUser ();  
}

真實角色

?
1
2
3
4
5
6
7
8
9
10
11
12
13
public class UserImpl implementsUserInfo{ 
 
    @Override
    public void queryUser() { 
      //查詢方法略...    
    
 
    @Override
    public void updateUser() { 
      //修改方法略...    
    
 
}

代理角色

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class UserProxy implementsUserInfo{ 
  private UserInfo userImpl; 
 
  public AccountProxy(UserInfo userImpl) { 
    this.userImpl = userImpl; 
  
 
  @Override
  public void queryUser() {
     //這里可以擴展,增加一些查詢之前需要執(zhí)行的方法 
    //查詢方法略... 
     //這里可以擴展,增加一些查詢之后需要執(zhí)行的方法    
  
 
  @Override
  public void updateUser() {
     //這里可以擴展,增加一些修改之前需要執(zhí)行的方法 
    //修改方法略... 
     //這里可以擴展,增加一些修改之后需要執(zhí)行的方法    
  }
}

使用代理之后如何調(diào)用他的方法?

?
1
2
3
4
5
6
7
8
public class Test { 
  public static void main(String[] args) { 
    UserInfo userImpl = new UserImpl();  
    UserInfo userProxy = new UserProxy(userImpl);  
       userProxy.queryUser();
    userProxy.updateUser();   
  
}

動態(tài)代理

動態(tài)代理類的源碼是程序在運行期間由JVM根據(jù)反射等機制動態(tài)生成的,所以不存在代理類的字節(jié)碼文件。代理角色和真實角色的聯(lián)系在程序運行時確定。 

示例: 

抽象角色,真實對象和代理對象共同的接口

?
1
2
3
4
public interface UserInfo{ 
    public void queryUser (); 
    public void updateUser ();  
}

真實角色

?
1
2
3
4
5
6
7
8
9
10
11
12
13
public class UserImpl implementsUserInfo{ 
 
    @Override
    public void queryUser() { 
      //查詢方法略...    
    
 
    @Override
    public void updateUser() { 
      //修改方法略...    
    
 
}

代理角色處理器:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class UserHandler implementsInvocationHandler{
 
     privateUserInfo userImpl;
     publicUserHandler(UserInfo userImpl2){
          this.userImpl= userImpl2;
     }
     @Override
     publicObject invoke(Object proxy, Method method, Object[] args)
                    throws Throwable {
          Objectobject = null;
    //方法開始前做一些事情
    if (method.getName().equals("queryUser")) {
      object = method.invoke(userImpl, args);
      //激活調(diào)用的方法 
    }
    //方法結(jié)束后做一些事情
    return object;
  }
}

如何調(diào)用(和靜態(tài)代理略有不同)

?
1
2
3
4
5
6
7
8
9
10
public class Test {    
  public static void main(String[] args) {
     UserInfouserImpl =new UserImpl();
     UserHandlerhandler = new UserHandler(userImpl);
     UserInfouserProxy = (UserInfo)Proxy.newProxyInstance
           (ClassLoader.getSystemClassLoader(),
            newClass[]{UserInfo.class}, handler);
     userProxy.queryUser();
     }
}

優(yōu)點:

業(yè)務類只需要關(guān)注業(yè)務邏輯本身,保證了業(yè)務類的重用性。這是代理的共有優(yōu)點。 

能夠協(xié)調(diào)調(diào)用者和被調(diào)用者,在一定程度上降低了系統(tǒng)的耦合度。

缺點:

由于在客戶端和真實主題之間增加了代理對象,因此有些類型的代理模式可能會造成請求的處理速度變慢,例如保護代理。

實現(xiàn)代理模式需要額外的工作,而且有些代理模式的實現(xiàn)過程較為復雜,例如遠程代理。

轉(zhuǎn)自:java知音

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 精品国产乱码久久久久久牛牛 | 欧美一区二区三区电影 | 久久久久国产精品免费免费搜索 | 国产欧美精品一区二区三区四区 | 夜夜嗨av色一区二区不卡 | 亚洲欧美日韩电影 | 综合色成人 | 成人h动漫精品一区二区樱花 | 国外成人在线视频 | 日本高清不卡视频 | 日本精品久久久 | 午夜视频免费在线观看 | 自拍偷拍一区二区三区 | 久久亚洲视频 | 精品欧美| 在线欧美一区 | 欧美日本国产 | 欧美在线电影 | 一区二区日韩欧美 | 成人动慢 | 亚洲永久免费 | 午夜视频免费 | 亚洲精品久久久久久国产 | 亚洲国产视频一区二区 | 免费一级在线观看 | 91av亚洲| 国内自拍第一页 | 国产精品欧美一区二区三区不卡 | 国产精品一区电影 | 在线观看午夜 | 交视频在线观看国产 | 亚洲国产激情 | 欧美激情网址 | 日韩精品一区二区三区中文字幕 | 日韩欧美~中文字幕 | 国产精品视频网 | 精品免费久久久久久久苍 | 久久久精品日本 | 精品久久免费 | 91性高湖久久久久久久久网站 | 日本va欧美va精品发布 |