`

代理模式和装饰器模式的区别与联系

    博客分类:
  • java
阅读更多
  最近上javaeye,看到不少人讨论java设计模式,本人只略熟悉几种常用的设计模式,看到有人讨论代理模式和装饰器模式的区别,步骤是
(poxy代理模式)
1。定义一个接口
2。业务类实现接口
3。定义一个poxy类控制访问实现类权限
Interface Forum{
    public void updateForumName(String name);
}

DbForum implements Forum{

   public void updateForum(String name){
    this.name = name
    updateObj(name);
}
}
ForumPoxy implements Forum{
   Forum  dbForum = null;
  String name= null;
  public ForumPoxy (Forum  DbForum,String name){
    this.name = name
    this.dbForum  = DbForum;
}
  public void updateForum(String name){
   if(isAdmin()){
     dbForum.updateForum();
   }
}




(Decorator装饰器模式)
1。定义一个接口
2。业务类实现该接口
3。定义一个伪实现类,扩展业务实现类功能
FileReader fr = new FileReader("path");
BufferReader br = new BufferReader(fr);
BufferReader ,FileReader同时实现Reader接口,BufferReader扩展FileReader,额外新增FileReader功能


两者的定义
装饰器模式:能动态的新增或组合对象的行为。
代理模式:为其他对象提供一种代理以控制对这个对象的访问.
装饰模式是“新增行为”,而代理模式是“控制访问”。关键就是我们如何判断是“新增行为”还是“控制访问”。
分享到:
评论

相关推荐

    54-Spring设计模式之装饰器模式1

    装饰器模式与其他设计模式的比较 在 Spring 设计模式中,装饰器模式经常与其他设计模式比较。例如,代理模式、适配器模式和模板方法模式。 * 代理模式:代理模式和装饰器模式类似,但是代理模式更关心的是控制原有...

    java静态代理、动态代理、装饰设计模式

    装饰器模式可以多次叠加,以实现不同层次的功能扩展。 ```java public abstract class ServiceDecorator implements Service { protected Service service; public ServiceDecorator(Service service) { this....

    java装饰模式及动态代理模式示例源码

    装饰模式和动态代理模式是Java编程中两种非常重要的设计模式,它们都在代码的扩展性和灵活性方面发挥着关键作用。下面将分别对这两种模式进行详细解释,并结合手写的数据库连接池和动态代理模式的使用进行深入探讨。...

    适配器模式,装饰模式和代理模式1

    例如,我们可以定义一个装饰器接口,里面包含了需要被装饰的方法,然后实现这个接口,并将其与原有的类结合起来。 三、代理模式 代理模式是一种结构型设计模式,它允许在不改变原有类的基础上增加新的功能。其实现...

    Python实现适配器模式、装饰器模式、代理模式.md

    Python实现适配器模式、装饰器模式、代理模式

    面向对象23种设计模式之代理模式

    在代理模式中,代理类作为真实对象的代表,它可以在客户端与真实对象交互时添加额外的行为,如监控、安全管理或者缓存等。 代理模式的核心思想是通过代理类来控制对原始对象的访问,这种控制可以体现在多个方面。...

    Java设计模式之装饰器模式.docx

    与代理模式的区别在于,代理模式关注的是对被代理对象的访问控制,而装饰器模式关注的是扩展对象的功能。 适用场景包括: 1. 需要在运行时动态地增加对象的功能。 2. 想要为一个类提供多种增强方式,而避免创建众多...

    实例讲解Ruby使用设计模式中的装饰器模式的方法

    装饰器模式的实现始于 `WriterDecorator` 类,这是一个抽象基类,它接收一个 `real_writer` 对象作为参数,并提供了与 `SimpleWriter` 相同的接口,如 `write_line`, `pos`, `rewind`, 和 `close` 方法。这样,`...

    代理模式Demo代理模式代理模式Demo

    此外,还可以通过继承、组合以及使用设计模式如装饰器模式来构建代理。 总结来说,代理模式是一种灵活的设计策略,它允许我们在不修改原有系统的基础上,通过引入代理对象来扩展系统的功能,提高代码的可复用性和可...

    7. 装饰器模式1

    装饰器模式与代理模式虽然相似,但它们的应用场景有所区别。代理模式通常用于控制对原对象的访问,例如权限控制、事务管理等,而装饰器模式更专注于扩展对象的功能。 在Java的I/O系统中,装饰器模式被广泛使用。...

    23种设计模式 -设计模式图解.7z

    结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、...

    设计模式之代理模式视频教学

    4. **代理模式与其他模式的结合**:代理模式常常和其他设计模式一起使用,例如装饰器模式,它们之间的区别和联系会有所讲解。 5. **代理模式的优缺点**:讨论代理模式的优点,如增加灵活性、解耦等,同时也会提到其...

    23种设计模式详解PDF

    适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式(11): 策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、...

    设计模式之代理模式

    代理模式是设计模式中的一种结构型模式,它在软件工程中扮演着重要的角色,尤其是在对象交互和控制访问方面。...在编程实践中,我们可以结合其他设计模式,如工厂模式、装饰器模式等,来进一步优化系统的架构。

    07代理模式_设计模式_

    代理模式是一种常用的设计模式,属于结构型模式,它在对象结构中引入了一个代理,以便提供对目标对象的访问控制或增强原有功能。...同时,掌握代理模式也是理解其他设计模式,如装饰器模式、策略模式等的基础。

    [结构型模式] 装饰者模式的理解

    装饰者模式与代理模式有一定的相似性,但两者有明显的区别。装饰者关注于增强对象的行为,而代理则更侧重于控制访问,如权限控制、远程代理等。 为了更好地理解装饰者模式,可以参考提供的PDF文件。"装饰者模式-...

    设计模式-C++

    结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、...

    java 设计模式之代理模式(Proxy Pattern)实现代码及设计详解:动态代理模式、静态代理模式

    同时,代理模式也可以作为其他设计模式(如装饰器模式)的基础,提供更多的灵活性。 在实际开发中,理解并熟练运用代理模式,无论是静态代理还是动态代理,都能提高代码的可扩展性和可维护性,对于提升软件质量有着...

    23种设计模式项目实例

    结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、...

Global site tag (gtag.js) - Google Analytics