代理模式是一种结构型设计模式,它为其他对象(被代理对象)提供一个代理对象,并由代理对象控制对被代理对象的访问。代理模式通过引入代理对象来控制对真实主题(被代理对象)的访问,从而实现了对真实主题的封装。

代理模式通常分为静态代理和动态代理两种。静态代理是指在编译时就确定了代理类和真实主题类的关系,而动态代理则是指在运行时动态生成代理类并将其与真实主题类关联起来。

下面是一个简单的例子:电脑代理商。在这个例子中,SaleComputer是抽象主题角色,ComputerProxy是代理主题角色,ComputerMaker是真实主体角色。