日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

【设计模式】代理模式 ( 静态代理 )

發布時間:2025/6/17 asp.net 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【设计模式】代理模式 ( 静态代理 ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、靜態代理代碼示例
    • 1、訂單類
    • 2、Service 接口
    • 3、Service 實現類
    • 4、Service 靜態代理類
    • 5、Dao 接口
    • 6、Dao 實現類
    • 7、測試類





一、靜態代理代碼示例



業務場景 : 保存訂單信息 , 在 Service 層處理訂單保存 , 在 Dao 層將訂單存儲到數據庫 ; 使用靜態代理類加強 Service 層的功能 ;


1、訂單類


package proxy;/*** 訂單類* 存儲訂單時 , 通過 Service 層通接收 Order 對象進行處理*/ public class Order {/*** 訂單信息*/private Object orderInfo;/*** 用戶 ID*/private Integer userId;public Order(Object orderInfo, Integer userId) {this.orderInfo = orderInfo;this.userId = userId;}public Object getOrderInfo() {return orderInfo;}public void setOrderInfo(Object orderInfo) {this.orderInfo = orderInfo;}public Integer getUserId() {return userId;}public void setUserId(Integer userId) {this.userId = userId;} }

2、Service 接口


package proxy;/*** 服務接口*/ public interface IOrderService {/*** 保存訂單* @param order 數據庫生效行數* @return*/int saveOrder(Order order); }

3、Service 實現類


package proxy;public class OrderServiceImpl implements IOrderService {private IOrderDao iOrderDao;public OrderServiceImpl(IOrderDao iOrderDao) {this.iOrderDao = iOrderDao;}@Overridepublic int saveOrder(Order order) {System.out.println("Service 層插入 Order 訂單信息成功");return this.iOrderDao.insert(order);} }

4、Service 靜態代理類


package proxy;/*** 訂單服務靜態代理類*/ public class OrderServiceStaticProxy {private IOrderService iOrderService;public OrderServiceStaticProxy(IOrderService iOrderService) {this.iOrderService = iOrderService;}public int saveOrder(Order order){beforeMethod();int result = iOrderService.saveOrder(order);afterMethod();return result;}/*** 在被代理對象方法之前執行的內容*/private void beforeMethod() {System.out.println("靜態代理 OrderServiceStaticProxy 執行 saveOrder 之前");}/*** 在被代理對象方法之后執行的內容*/private void afterMethod() {System.out.println("靜態代理 OrderServiceStaticProxy 執行 saveOrder 之后");} }

5、Dao 接口


package proxy;/*** 數據庫接口*/ public interface IOrderDao {/*** 向數據庫中插入訂單信息* @param order* @return*/int insert(Order order); }

6、Dao 實現類


package proxy;public class OrderDaoImpl implements IOrderDao {@Overridepublic int insert(Order order) {System.out.println("Dao 層插入 Order 訂單信息成功");return 1;} }

7、測試類


package proxy;public class Main {public static void main(String[] args) {Order order = new Order("書籍訂單", 1);IOrderDao dao = new OrderDaoImpl();IOrderService service = new OrderServiceImpl(dao);// 不使用代理的情況service.saveOrder(order);System.out.println();// 使用代理的情況OrderServiceStaticProxy proxy = new OrderServiceStaticProxy(service);proxy.saveOrder(order);} }

執行結果 :

Service 層插入 Order 訂單信息成功 Dao 層插入 Order 訂單信息成功靜態代理 OrderServiceStaticProxy 執行 saveOrder 之前 Service 層插入 Order 訂單信息成功 Dao 層插入 Order 訂單信息成功 靜態代理 OrderServiceStaticProxy 執行 saveOrder 之后

總結

以上是生活随笔為你收集整理的【设计模式】代理模式 ( 静态代理 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。