首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

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

2012-09-10 
代理模式和装饰器模式的区别与联系最近上javaeye,看到不少人讨论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功能


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

热点排行