文档章节

Eclipse的设计模式 - Workspace中的代理与桥梁模式

奋斗到天明
 奋斗到天明
发布于 2015/08/27 16:52
字数 396
阅读 176
收藏 0

1、核心工作区间(Workspace)中的代理与桥梁模式。

在核心工作区间中,最重要的设计模式是“代理与桥梁”,最让人疑惑的是哪部分是代理,哪部分是桥梁。 下面类图使用 IResource做示范,其他也类似如:IFile, IFolder, IProject, IWorkspaceRoot等等。 

  

在工作空间中,每个资源(resource)用句柄(handle)代表,句柄像资源的主键,句柄是小对象,他创建之后就不会改变。 Resource 是 ResourceInfo 的代理,无论什么请求ResourceInfo都通过他的代理Resource。 Resource 是 IResource的实现类,但是一个句柄只有一个实现类,这可以称为一个简化版的桥梁模式。 代理:如果,A无论做什么,都通过B,那么,B是A的代理, 这可能不准确,但是他是我们怎样理解类图。 桥梁:桥梁是一个类型适配器的模式,在桥梁模式中,我们定义所胡的抽象中和底层实现,我们不必等待它适用我们的接口,在这种例子中,通常会有多个实现代理一个。 在这里,没有必要对应上你知道的设计模式,因为他们不是很明显,懂得他们怎么更有用。

2. 代码例子:

这里是一个代码例子能说明这个模式怎么工作:

IResource resource=ResourcesPlugin.getWorkspace().getRoot().findMember(path);
  if (resource == null) {
    return null;
  }
IJavaElement javaElement=JavaCore.create(resource);
  if (javaElement == null) {
    return null;
  }
  return javaElement;

以上文章翻译自: http://www.programcreek.com/2013/02/eclipse-design-patterns-proxy-and-bridge-in-workspace/

© 著作权归作者所有

共有 人打赏支持
奋斗到天明
粉丝 18
博文 112
码字总数 82707
作品 0
昌平
程序员
【设计模式笔记】(十六)- 代理模式

一、简述 代理模式(Proxy Pattern),为其他对象提供一个代理,并由代理对象控制原有对象的引用;也称为委托模式。 其实代理模式无论是在日常开发还是设计模式中,基本随处可见,中介者模式中...

MrTrying
06/24
0
0
代理模式(Proxy Pattern):动态代理 - 最易懂的设计模式解析

前言 今天我来全面总结开发中最常用的设计模式 - 代理模式中的动态代理模式 其他设计模式介绍 1分钟全面了解“设计模式” 单例模式(Singleton) - 最易懂的设计模式解析 简单工厂模式(Sim...

Carson_Ho
04/09
0
0
Javascript 部分设计模式的个人理解

9 单例模式(确保自己使用的资源都是全局的) 1)普通单体(字面量初始化对象) var person = {name : 'zhangsan',age : 12,getAge : function(){return this.age ;}}person.height = 185 ; ...

learn_more
2014/10/12
0
0
设计模式4——State设计模式

State状态设计模式类似于Switch多路分支功能的开关,State状态模式机制如下: 状态模式UML图如下: State状态设计模式用于改变对象的行为,在代理的生命周期里,随着状态变化从一个目标实现程...

小米米儿小
2013/12/10
0
0
我的Java设计模式-代理模式

写完上一篇之后有小伙伴问我有没有写过代理模式,想看看我的理解。原本我的设计模式系列是按照创建型-行为型-结构型的顺序写下去的,既然小伙伴诚心诚意了,我就大发慈悲的穿插一篇代理模式。...

Jet啟思
2017/11/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

maven坐标和依赖

一、maven坐标详解 <groupId>com.fgt.club</groupId><artifactId>club-common-service-facade</artifactId><version>3.0.0</version><packaging>jar</packaging> maven的坐标元素说......

老韭菜
今天
1
0
springmvc-servlet.xml配置表功能解释

问:<?xml version="1.0" encoding="UTF-8" ?> 答: xml version="1.0"表示是此xml文件的版本是1.0 encoding="UTF-8"表示此文件的编码方式是UTF-8 问:<!DOCTYPE beans PUBLIC "-//SPRING//......

隐士族隐逸
今天
1
0
基于TP5的微信的公众号获取登录用户信息

之前讲过微信的公众号自动登录的菜单配置,这次记录一下在TP5项目中获取自动登录的用户信息并存到数据库的操作 基本的流程为:微信设置自动登录的菜单—>访问的URL指定的函数里获取用户信息—...

月夜中徘徊
今天
0
0
youTrack

package jetbrains.teamsys.license.runtime; 计算lis package jetbrains.ring.license.reader; 验证lis 安装后先不要生成lis,要把相关文件进行替换 ring-license-checker-1.0.41.jar char......

max佩恩
今天
1
0
12.17 Nginx负载均衡

Nginx负载均衡 下面的dig看到可以返回2个IP,就是解析出来的IP,这样我们可以做负载均衡。 dig www.qq.com 1.vim /usr/local/nginx/conf/vhost/fuzai.conf 2.添加如下配置 upstream qq //定义...

芬野de博客
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部