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

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

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

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

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

在工作空间中,每个资源(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/

你可能感兴趣的:(Eclipse的设计模式 - Workspace中的代理与桥梁模式)