【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
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/
来源:oschina
链接:https://my.oschina.net/u/1386633/blog/498198