准确的将事件或消息发送给观察者,避免迭代带来的性能开销。
1)OringinalObservable
事件源
2)AccurateDispatcher
该类能够将事件或消息准确的发送到关心者。通过Hash 或其它方式寻找关心者,而不是通过迭工的 方式查找。
3)ConcreteObserver
事件或消息的关心者。
java 代码
public class AccurateDispatcher implements IListener {
protected void d ...
看门人 / 应用守卫
一般应用系统都有登录、登出和退出等操作,但这些操作可能以多种方式进行调用,例如:系统启动时打开登录对话框,用户也可以点击[文件/登录]菜单打开对话框。这样就需要这些操作封装到一个控制类中,称为:Janitor 或者Application Guarder。
它是如何工作的?
Janitor 应该是一个单例模式的,一个应用中应该只有一个Janitor 的实例。
想Janitor能够正常的工作,需要给它一个安全服务的实现类,和登录对话框的实现类,如果登录或登出成功,Janitor 应该 ...
名词介绍
1) EMS
Element Manage System 设备管理系统
2) Mediation
网管系统中通常将直接与具体网元交互的模块称为:Mediation 或者Adapter 模块, 该模块屏蔽了网元通信的具体协议, 向上层业务模块提供了OO的访问方式, 例如: 对网元内的管理对象和告警进行建模等.
1. 设计介绍
1.1 类图
设计类描述如下:
1)INetworkElementAgent 接口
...
1. 目的
从Presenter 中分离出数据加载和响应Domain 层异步事件的逻辑,使Presenter 的逻辑处理更加简单。关于Presneter 的介绍可以参见Martin Fowler 的MVP 模式(最近好像已经分解成Supervising Controller和Passive View 两个模式,我还怎么看懂)。
2. 适用性
该模式主要适用于多客户端需要数据同步的系统中。
3. 结构
说明:
1) Model:该模型Swing 中的Model 类似,负责提供数据,一般在实现时,这个Model 应该是Domain 层的相关接 ...
1. 目的
使界面代码承担的职责更少,便于代码的维护,提高代码可读性。
2. 动机
我们在编写客户端代码的时候,经常会用到字符资源、图片资源以及多个View 间共享实例,这些职责如果由View 自己负责,一方面,降低了代码的重用性(资源加载的代码),另一方面,也使View 承担了更多的职责,不利用View 的维护。如果这部分职责由外部实现,View 又如何访问这些资源。这就是Presentation Context 的模式所要解决的问题。
3.参与者
1. Presentation Context:它封装了View 在创建时所需要的上下文信息,并且可以作为 ...
软件模式是对整个软件开发过程的研究,包括:需求分析、软件设计、编码、测试以及管理。软件模式和其它科学一样,研究软件过程的规律、特征以及变化等等,例如:管理学,它研究的是组织管理过程中的规律、特征以及变化,并且把这些内容总结形成理论,这些理论大都是从实践中总结出来的,可以称其为经验。后来从事管理活动的人,有了这些理论基础,就能够少走很多弯路。
软件模式是专家们在实践过程中总结出的经验,他们以一种特定的格式表述出来,让软件工程师们在开发的过程中少走弯路。所以说软件模式是提高软件生产率和软件质量的关键因素之一,对它的研究也 ...
1. 目的
将业务层的方法调用,变成非显式调用,有利于界面的自动化测试。
2. 动机
在编写客户端代码的时候,很多Action 都是直接调用业务层方法(或者通过Presenter 负责调用),这样就会使界面的代码直接依赖业务层代码,在进行单元测试的时候会为业务层接口打很多的桩,工作量较大。而且界面的单元测试,主要是测试界面的布局、界面的逻辑和用户响应等,在单元测试阶段很少会涉及业务的逻辑。
3. 参与者
1, Presentation: 主要负责界面的展现和用户操作的接受 ...
Lazy Initalization Application
延迟初始化的应用比较广泛,至于它的介绍网上有很多好的文章,这里只作简单的介绍。如果一个对象的某个Field 的获取比较耗时,而且这个Field 不需要预先加载的,我们可以在第一次使用时加载这个Field,我们称这种模式就是延迟初始化模式。
在客户端实现中有很地方可以应用延迟加载模式,这里我只介绍两种:1)View 的延迟初始化;2)Image 的延迟初始化。
  ...
GUI 开发新模式-GUI Code Modeling(Under Development)
在典型的C/S结构中,Client 端被分成了三个部分:Presentation Level(表现层)、Presentation Logic(也称为Controller)、Thin Domain Logic (领域逻辑层)这三层,表现层:主要负责处理界的构造;控制器:主要负责处理界面逻辑,也就是用户在界面的操作;领域逻辑层:主要负责处理简单的、而且和特定界面紧密相关的领域逻辑。
依赖关系图如下:
其中Present ...
编码模式
1、简介
下列模式是我在编码的过程中发现的,它们可以帮助程序员编写出高质量的代码,本文会不断的更新,如果网友们也发现了好的模式,可以回复,也可以留言给我,我会将好的模式加在里面并注明出处。
2、编码模式
(1) 方法参数具体化模式(模式名称暂定):
我们在设计类方法的时候,经常需要传入一些参数来改变方法的运行结果,如果我们对参数的定义很泛,例如:使用Integer、String 等通用的类型作为参数,就会使方法调用都变迷惑,因为他们不知道方法内到底需要什么样的字符串或整形(通 ...
- 浏览: 16223 次

- 详细资料
搜索本博客
最近加入圈子
链接
最新评论
-
The accurate event dispa ...
是对观察者模式的一种补充,
-- by wangyonghe -
The accurate event dispa ...
lz你说的就是观察者模式阿。
-- by rainsilence -
Patterns of Action
写的还是很好的,对于设计模式而言,有自己的理解,这是最重要的。 其实action ...
-- by icedcoco -
Data Binder
mmd 果然是一个公司出来的.做的东西都差不多.看看me 在这写的formbin ...
-- by zhufanamo -
Data Binder
shaucle 写道和swing的区别又在哪?不明白你要和Swing 的什么东西 ...
-- by wangyonghe






评论排行榜