文档章节

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

奋斗到天明
 奋斗到天明
发布于 2015/08/27 16:52
字数 396
阅读 304
收藏 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/

© 著作权归作者所有

奋斗到天明
粉丝 19
博文 112
码字总数 82707
作品 0
昌平
程序员
私信 提问
加载中

评论(0)

结构型设计模式对比 设计模式(十六)

结构型设计模式 结构型模式关注于整体最终的结构,通过继承和组合,构建出更加复杂的结构 进而提供更加强大的逻辑功能 七种结构型模式 适配器模式(Adapter Pattern) 组合模式(Composite P...

osc_ddwjgohl
2018/12/07
4
0
Javascript 部分设计模式的个人理解

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

learn_more
2014/10/12
138
0
初探Java设计模式4:一文带你掌握JDK中的设计模式

转自https://javadoop.com/post/design-pattern 行为型模式 策略模式 观察者模式 责任链模式 模板方法模式 状态模式 行为型模式总结 本系列文章将整理到我在GitHub上的《Java面试指南》仓库,...

osc_y40tpu41
2019/10/13
1
0
JavaScript 的一些设计模式

设计模式的定义:在面向对象软件设计过程中针对特定问题的简洁而优雅的解决方案 设计模式是前人解决某个特定场景下对而总结出来的一些解决方案。可能刚开始接触编程还没有什么经验的时候,会...

格西南
2019/08/20
0
0
代理模式(Proxy Pattern):动态代理 - 最易懂的设计模式解析

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

Carson_Ho
2018/04/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

window下 mongodb开启用户名和密码 权限

在默认情况下,mongod是监听在127.0.0.1之上的,任何客户端都可以直接连接27017,且没有认证。 好处是,用户可以即时上手,不用担心被一堆配置弄的心烦意乱。 坏处是,公网服务器搭建MongoDB...

东东笔记
52分钟前
9
0
数据倾斜

数据倾斜: 两种数据倾斜发生的现象: 80%情况下都发生挂了,只有极少20%情况下能把task执行完成 窄依赖:结构简单,如果发生数据丢失,方便查找丢失的数据 宽依赖:结构复杂,如何发生数据丢...

七宝1
今天
20
0
我的jdk源码(十一):ArrayList

一、概述 ArrayList类是AbstractList的子类,实现了具体的add(), set(), remove()等方法。它是一个可调整大小的数组可以用来存放各种形式的数据。 二、源码分析 (1) 类的声明,源码如下: ...

Java觉浅
昨天
24
0
vnc server,vnc server是什么,vnc工具推荐

nc server是一个用来共享linux服务器上资源给其他分布式用户的服务只要再一台linux系统的机器上安装vnc server,然后开启服务,其他机器就可以通过vncviewer访问这台机器上的共享资源,那么今...

兔子m
昨天
20
0
COLA的扩展性使用和源码研究

cola扩展点使用和设计初探 封装变化,可灵活应对程序的需求变化。 扩展点使用 步骤: 定义扩展点接口,类型可以是校验器,转换器,实体; 必须以ExtPt结尾,表示一个扩展点。 比如,我定义一个...

李福春carter
昨天
27
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部