当前位置:首页 > CN2资讯 > 正文内容

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

3天前CN2资讯

文章目录

  • 一、静态代理代码示例
    • 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; } @Override public 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 { @Override public 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 之后
    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/24005.html

    分享给朋友:

    “【设计模式】代理模式 ( 静态代理 )静态代理模式” 的相关文章

    云计算技术在犬类健康管理中的应用与创新

    云计算服务在犬类健康管理中的应用 在现代社会中,科技的发展为我们的生活带来了许多便利,尤其是云计算技术提供了不可或缺的支持。在犬类健康管理中,云计算的应用同样发挥着至关重要的作用。这一技术不仅能帮助宠物主人更好地管理爱犬的健康状况,还可以提高宠物医院的服务效率和医疗水平。 首先,云计算技术的核心在于...

    香港云电脑:灵活、高效、经济的现代计算解决方案

    香港云电脑概述 香港云电脑,是基于云计算技术的一种崭新电脑服务模式。其实你可以把它想象成一种“租赁”的概念。我们不需要像以前那样花大价钱去购买实体电脑,而是可以通过网络租用需要的计算、存储和软件资源,与此同时,拥有几乎完整的电脑功能。这种模式的好处多多,包括灵活性、低成本、高效性以及可扩展性。无论是...

    选择香港主机的最佳指南:提升您的网站性能与用户体验

    香港主机指的是那些在香港地区部署的服务器,主要用于提供网站托管、应用托管或数据库管理等服务。得益于香港卓越的网络基础设施,越来越多的企业和个人选择将他们的运营托付给香港主机。这不仅提升了业务的可达性,也提供了更优质的用户体验。 如果我回想起我最初接触香港主机时,感到非常惊讶于它的潜力。香港地理位置独...

    宝塔面板PHP扩展新增指南:提升网站性能的实用技巧

    在日常网站管理和服务器配置中,宝塔面板的出现让这一切变得更为简单直观。作为一个流行的服务器控制面板,宝塔面板以其用户友好的界面和丰富的功能备受欢迎。对于没有技术背景的用户来说,它提供了极大的便利,而对于开发者来说,宝塔也能高效管理复杂的服务器配置。 宝塔面板不仅支持多种服务器环境,还能够轻松管理数据...

    菲律宾用户如何通过VPS提升TikTok访问速度

    在菲律宾使用VPS访问TikTok,这个话题对很多喜欢在TikTok上进行电商活动或内容创作的人来说非常重要。首先,我想谈谈VPS的概念以及它的优势。VPS,全称是虚拟专用服务器,它提供了一种比共享主机更为灵活和高效的解决方案。对于菲律宾的用户来说,通过使用VPS,可以在一定程度上绕过地区限制,更流...

    IEPL:企业国际以太网专线的优势与申请指南

    什么是IEPL 当我第一次接触IEPL(International Ethernet Private Line)时,我意识到它是一种为企业提供国际级别的网络连接服务,特别适合那些需要在不同国家和地区之间高效、安全传输数据的公司。这项服务一般由电信运营商提供,旨在帮助企业实现及时的信息交流和数据传输。...