代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用
按照代理创建的时期可分为静态代理和动态代理。静态代理是由程序员创建或特定工具自动生成源代码,在对其编译。动态代理是在程序运行时通过反射机制动态创建的。
静态代理模式一般会有三个角色:
抽象角色:指代理角色和真实角色对外提供的公共方法,一般为一个接口
真实角色:需要实现抽象角色接口,定义了真实角色所要实现的业务逻辑,以便供代理角色调用。也就是真正的业务逻辑在此。
代理角色:需要实现抽象角色接口,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。
动态代理是不需要定义代理角色的,通过一个处理器来处理代理角色的业务逻辑.这个虽然好用而且减少了类的数量,但是除了C#以外其他语言建议少用委托。这里不做详细介绍了。
代理模式
最新推荐文章于 2022-06-10 13:42:29 发布