准确的将事件或消息发送给观察者,避免迭代带来的性能开销。 1)OringinalObservable 事件源 2)AccurateDispatcher 该类能够将事件或消息准确的发送到关心者。通过Hash 或其它方式寻找关心者,而不是通过迭工的 方式查找。 3)ConcreteObserver 事件或消息的关心者。 java 代码 public class AccurateDispatcher implements IListener {    protected void d ...
2007-12-21

Janitor/Application Guarder

关键字: pattern
看门人 / 应用守卫     一般应用系统都有登录、登出和退出等操作,但这些操作可能以多种方式进行调用,例如:系统启动时打开登录对话框,用户也可以点击[文件/登录]菜单打开对话框。这样就需要这些操作封装到一个控制类中,称为:Janitor 或者Application Guarder。   它是如何工作的? Janitor 应该是一个单例模式的,一个应用中应该只有一个Janitor 的实例。 想Janitor能够正常的工作,需要给它一个安全服务的实现类,和登录对话框的实现类,如果登录或登出成功,Janitor 应该 ...
名词介绍 1)  EMS Element Manage System 设备管理系统 2)  Mediation         网管系统中通常将直接与具体网元交互的模块称为:Mediation 或者Adapter 模块, 该模块屏蔽了网元通信的具体协议, 向上层业务模块提供了OO的访问方式, 例如: 对网元内的管理对象和告警进行建模等. 1. 设计介绍 1.1 类图  设计类描述如下:  1)INetworkElementAgent 接口   ...
2006-12-28

Data Binder

关键字: Pattern
1. 目的 从Presenter 中分离出数据加载和响应Domain 层异步事件的逻辑,使Presenter 的逻辑处理更加简单。关于Presneter 的介绍可以参见Martin Fowler 的MVP 模式(最近好像已经分解成Supervising Controller和Passive View 两个模式,我还怎么看懂)。 2. 适用性 该模式主要适用于多客户端需要数据同步的系统中。 3. 结构 说明: 1) Model:该模型Swing 中的Model 类似,负责提供数据,一般在实现时,这个Model 应该是Domain 层的相关接 ...
2006-12-26

Presentation Context

关键字: Pattern
1. 目的 使界面代码承担的职责更少,便于代码的维护,提高代码可读性。 2. 动机 我们在编写客户端代码的时候,经常会用到字符资源、图片资源以及多个View 间共享实例,这些职责如果由View 自己负责,一方面,降低了代码的重用性(资源加载的代码),另一方面,也使View 承担了更多的职责,不利用View 的维护。如果这部分职责由外部实现,View 又如何访问这些资源。这就是Presentation Context 的模式所要解决的问题。 3.参与者 1. Presentation Context:它封装了View 在创建时所需要的上下文信息,并且可以作为 ...
2006-12-25

关于软件模式

关键字: Pattern
    软件模式是对整个软件开发过程的研究,包括:需求分析、软件设计、编码、测试以及管理。软件模式和其它科学一样,研究软件过程的规律、特征以及变化等等,例如:管理学,它研究的是组织管理过程中的规律、特征以及变化,并且把这些内容总结形成理论,这些理论大都是从实践中总结出来的,可以称其为经验。后来从事管理活动的人,有了这些理论基础,就能够少走很多弯路。     软件模式是专家们在实践过程中总结出的经验,他们以一种特定的格式表述出来,让软件工程师们在开发的过程中少走弯路。所以说软件模式是提高软件生产率和软件质量的关键因素之一,对它的研究也 ...
2006-12-22

隔离的领域层

关键字: Pattern
1. 目的     将业务层的方法调用,变成非显式调用,有利于界面的自动化测试。 2. 动机     在编写客户端代码的时候,很多Action 都是直接调用业务层方法(或者通过Presenter 负责调用),这样就会使界面的代码直接依赖业务层代码,在进行单元测试的时候会为业务层接口打很多的桩,工作量较大。而且界面的单元测试,主要是测试界面的布局、界面的逻辑和用户响应等,在单元测试阶段很少会涉及业务的逻辑。 3. 参与者     1, Presentation: 主要负责界面的展现和用户操作的接受 ...
 Lazy Initalization Application         延迟初始化的应用比较广泛,至于它的介绍网上有很多好的文章,这里只作简单的介绍。如果一个对象的某个Field 的获取比较耗时,而且这个Field 不需要预先加载的,我们可以在第一次使用时加载这个Field,我们称这种模式就是延迟初始化模式。     在客户端实现中有很地方可以应用延迟加载模式,这里我只介绍两种:1)View 的延迟初始化;2)Image 的延迟初始化。     ...
2006-12-03

GUI 开发新模式

关键字: GUI Code Modeling
GUI 开发新模式-GUI Code Modeling(Under Development)       在典型的C/S结构中,Client 端被分成了三个部分:Presentation Level(表现层)、Presentation Logic(也称为Controller)、Thin Domain Logic (领域逻辑层)这三层,表现层:主要负责处理界的构造;控制器:主要负责处理界面逻辑,也就是用户在界面的操作;领域逻辑层:主要负责处理简单的、而且和特定界面紧密相关的领域逻辑。 依赖关系图如下:     其中Present ...
2006-12-03

Coding Principle

关键字: Principle
编码模式 1、简介       下列模式是我在编码的过程中发现的,它们可以帮助程序员编写出高质量的代码,本文会不断的更新,如果网友们也发现了好的模式,可以回复,也可以留言给我,我会将好的模式加在里面并注明出处。 2、编码模式 (1) 方法参数具体化模式(模式名称暂定):     我们在设计类方法的时候,经常需要传入一些参数来改变方法的运行结果,如果我们对参数的定义很泛,例如:使用Integer、String 等通用的类型作为参数,就会使方法调用都变迷惑,因为他们不知道方法内到底需要什么样的字符串或整形(通 ...
wangyonghe
搜索本博客
最近加入圈子
存档
最新评论