我个人觉得这三个模式很相近,但是无法用场景来区分他们,只能根据他们uml图的特点来区分他们。
代理模式
代理模式的代理对象和被代理对象都实现了同一个接口,代理对象有被代理对象的引用,但client调用代理对象的方法时,方法其实是调用了被代理对象相应的方法。
适配器模式
适配器有被适配对象的引用,client可以通过调用适配器的方法来调用被适配的对象,但是只是为了不直接调用被适配的对象的话,就和代理的目的没区别了。其实是我们想要使用一个对象A,但是同时还要其他的功能,这个功能在被适配对象里用。所以我们可以用适配器继承对象A然后使用适配器又有被适配对象的引用,他就有所有的功能了。
装饰模式
被装饰和装饰对象都实习装饰接口,client调用装饰器方法,装饰器方法调用被装饰对象的方法,关键是,被装饰的对象是通过构造传进来的,所以,他是动态的。
代理模式,适配器模式和装饰模式'
最新推荐文章于 2022-07-14 16:58:02 发布