学着学着真容易懵
相同点:
装饰者类与目标类要求实现同一接口;静态代理类与目标类要求也实现同一接口。装饰者类与静态代理类都可以实现增强目标类的功能。装饰者类与静态代理类中都具有目标类的引用,目的都是为了在其中调用目标类的方 法。
不同点:
装饰者设计模式就是为了增强目标类;静态代理设计模式是为了保护和隐藏目标对象, 让客户类只能访问代理对象,而不能直接访问目标对象。装饰者类中的目标类的引用是通过带参构造器传入的;静态代理类中的目标类的引用, 一般都是在代理类中直接创建的,目的就是为了隐藏目标对象。装饰者基类一般不对目标对象进行增强,而是由不同的具体装饰者进行增强的,且这 些具体的装饰者可以形成增强链,对目标对象进行连续增强。静态代理类会直接对目标对象 进行增强,需要哪些增强的功能,一次性在静态代理类中完成,没有增强链的概念。
装饰模式与代理区别
最新推荐文章于 2024-10-09 17:20:25 发布