Observer 模式在eHR中的应用
2004-12-21 11:03
288 查看
接触模式应该是在大三的时候,那时候感觉是模式让我真正的认识到了OO,现在毕业了,也工作有半年了,终于体会到了“商业特色的软件开发”了,根本就没有多余的时间去考虑运用什么模式、怎样使系统可扩展性更强、如何重构。哎!mo办法啊(看过天下无贼的应该能听懂吧)!
最近稍闲了点,所以想重拾一下以前学的知识,这不就拿Observer模式开蒜了,废话少说,来吧!
一个软件系统应该存在着各式各样的依赖,小系统尚且如此,大的商业系统当然以来更加复杂。我举一个在eHR(人力资源管理)系统中的依赖关系:
1.组织架构的修改要导致绩效考核系统中签核人的修改。
现在将这段代码进行一下重构,在这个依赖关系里可以抽象出下面几个对象:
1.抽象主题:ISubject
2.具体主题:OrgChgSubject
3.抽象观察者:IObserver
4.观察者:OrgChgObserver
实现如下:
public interface ISubject
public interface IObserver
public class OrgChgObserver:IObserver
public class OrgChgSubject:ISubject
public class MainClass
[STAThread]
static void Main(string[] args)
OrgChgSubject o_OrgChgSubject=new OrgChgSubject();
OrgChgObserver o_OrgChgObserver=new OrgChgObserver();
o_OrgChgSubject.AttachObserver(o_OrgChgObserver);
o_OrgChgSubject.NotifyObservers();
Console.ReadLine();
}
}
运行结果:
可以看出实际上组织架构的变动必然会导致很多的地方要求随之相应的变动,所以各个模块都可以实现各自的Observer,实现自己的Update函数。
很简单不是吗?不过还有一些边缘问题要解决:
1.观察者在不同模块怎么办?即处于不同的DLL?
2.如何将DEM事件机制运用进去?
3.是否可以与MOP整合?
。。。。。
今天没有时间了,先写到这里吧。
最近稍闲了点,所以想重拾一下以前学的知识,这不就拿Observer模式开蒜了,废话少说,来吧!
一个软件系统应该存在着各式各样的依赖,小系统尚且如此,大的商业系统当然以来更加复杂。我举一个在eHR(人力资源管理)系统中的依赖关系:
1.组织架构的修改要导致绩效考核系统中签核人的修改。
现在将这段代码进行一下重构,在这个依赖关系里可以抽象出下面几个对象:
1.抽象主题:ISubject
2.具体主题:OrgChgSubject
3.抽象观察者:IObserver
4.观察者:OrgChgObserver
实现如下:
public interface ISubject
public interface IObserver
public class OrgChgObserver:IObserver
public class OrgChgSubject:ISubject
public class MainClass
[STAThread]
static void Main(string[] args)
OrgChgSubject o_OrgChgSubject=new OrgChgSubject();
OrgChgObserver o_OrgChgObserver=new OrgChgObserver();
o_OrgChgSubject.AttachObserver(o_OrgChgObserver);
o_OrgChgSubject.NotifyObservers();
Console.ReadLine();
}
}
运行结果:
可以看出实际上组织架构的变动必然会导致很多的地方要求随之相应的变动,所以各个模块都可以实现各自的Observer,实现自己的Update函数。
很简单不是吗?不过还有一些边缘问题要解决:
1.观察者在不同模块怎么办?即处于不同的DLL?
2.如何将DEM事件机制运用进去?
3.是否可以与MOP整合?
。。。。。
今天没有时间了,先写到这里吧。
相关文章推荐
- 浅学设计模式之观察者<Observer>模式及在android中的应用
- Java观察者模式(Observer)详解及应用------模式中的皇后
- 浅学设计模式之观察者<Observer>模式及在android中的应用
- 委托的应用之二:使用多播委托编码Observer模式。以及事件的引入
- Java:应用Observer接口实践Observer模式
- 第三篇 android 应用开发模式之MVC模式及Observer模式
- Java:应用Observer接口实践Observer模式
- 观察者模式(Observer)在Android中的应用:
- 设计模式observer在ajax中的一个应用,解决页面onload函数同一时间只有一个可以用
- 浅学设计模式之观察者<Observer>模式及在android中的应用
- OpenJDK源码研究笔记(六)--观察者模式工具类(Observer和Observable)和应用示例
- 思考设计模式在自助终端软件上的应用 ——Observer(观察着)模式
- 应用Observer接口实践Observer模式
- Java:应用Observer接口实践Observer模式
- 思考设计模式在自助终端软件上的应用 ——Observer(观察着)模式
- Observer模式应用 ---文件改变监视器
- Java:应用Observer接口实践Observer模式
- observer模式的应用
- C# 通过 Observer观察者 设计模式 来理解 抽象类 和 接口 应用在什么地方
- 浅学设计模式之观察者<Observer>模式及在android中的应用 .