18、设计模式:计数代理、聚合强制器与显式对象释放

设计模式:计数代理、聚合强制器与显式对象释放

1. 计数代理(Counting Proxy)

1.1 描述

计数代理模式在设计额外操作(如日志记录和计数)时非常有用,这些操作需要在客户端对象调用服务提供者对象的方法之前和/或之后执行。该模式建议将这些额外功能封装在一个单独的对象中,即计数代理,而不是将其实现放在服务提供者对象内部。设计良好的对象应具有专注的功能,将日志记录、计数等功能封装到单独的对象中,可使服务提供者对象仅执行其设计的功能。

计数代理被设计为具有与客户端访问的服务提供者对象相同的接口。客户端对象不直接访问服务提供者对象,而是调用计数代理的方法。代理执行所需的日志记录和计数操作,并将方法调用转发给服务提供者对象。

1.2 示例

以下是一个订单类层次结构的示例,展示了计数代理的使用:

// 定义订单接口
public interface OrderIF {
    public Vector getAllOrders();
}
// 实现订单接口的 Order 类
public class Order implements OrderIF {
    public Vector getAllOrders() {
        FileUtil fileUtil = new FileUtil();
        Vector v = fileUtil.fileToVector("orders.txt");
        return v;
    }
}
// 实现订单接口的 OrderProxy 类,作为计数代理
public class
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值