[读书笔记]观察者模式

概述

在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系” ——一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好地抵御变化。使用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关系。从而实现软件体系结构的松耦合。

意图
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。[GOF 《设计模式》]

此系统中的三个部分是气象站(获取实际气象数据的物理装置)、WeatherData对象(追踪来自气象站的数据,并更新布告板)和布告板(显示目前天气状况给用户看)。WeatherData对象知道如何跟物理气象站联系,以取得更新的数据。WeatherData对象会随即更新三个布告板的显示:目前状况(温度、湿度、气压)、气象统计和天气预报。

Read the rest of this entry »

C# Collection 之数组列表

vs2005.gifArrayList是动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处:动态的增加和减少元素,实现了ICollection和IList接口,灵活的设置数组的大小。ArrayList的元素不是自动排序的。类似一维数组,ArrayList是用索引运算符和索引来访问的。ArrayList静态成员是线程安全的,而示例成员则不是。公共的接口集合(Icollection、Ienumerable 和 Icloneable)看参考MSDN关于接口的说明。

Read the rest of this entry »

C# Collection 之哈希表

vs2005.gif在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值 对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中key/value键值对均为 object类型,所以Hashtable可以支持任何类型的key/value键值对.

在哈希表中添加一个key/value键值对:HashtableObject.Add(key,value);
在哈希表中去除某个key/value键值对:HashtableObject.Remove(key);
从哈希表中移除所有元素: HashtableObject.Clear();
判断哈希表是否包含特定键key: HashtableObject.Contains(key);

Read the rest of this entry »

2007微软技术创新日

ms-tech-innovtation-day.gif“2007微软技术创新日”是微软公司在全中国范围内举办的系列技术交流活动。旨在传播与分享微软最新的技术产品信息与资源。通过全方位的互动和交流,帮助开发人员与微软专家进行方便高效的沟通,使您的企业能够与创新技术同步发展,从而推动您的企业高速前进。点燃技术创新激情,星火燎原,我们携手共进不懈追求。

“2007微软技术创新日”系列活动,将于8月 27 日至 9月 21 日,相继登陆上海、大连、济南、北京、杭州、西安、成都、天津、广州、深圳、福州、武汉共12个城市。届时,微软三大开发平台将向您尽展前沿科技魅力,与您深入探讨:如何在Windows Vista平台上开发新一代用户体验;如何应用基于Office 2007系统的OBA(Office Business Application),带来更高的生产力;如何应用SQL server 2005构架企业级数据总线。与此同时,您更有机会在第一时间,现场倾听微软公司SOA架构的理念和构想,参与微软公司SOA构架的生动演示。

Read the rest of this entry »