我的天空,我的世界

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2009年11月24日

摘要: 一般而言,HTTP协议是非状态服务,它不保存任何用户请求信息。直至NetScape开始使用Cookies来保存用户请求信息,Web应用程序有了极大的发展。现在ASP.NET程序员可以使用很多种方式来保存用户请求信息。 下面主要介绍ASP.NET关于客户端状态管理的几种方式。 ASP.NET,提供了Cookies, QueryStrings (URL), Hidden fields, View St... 阅读全文
posted @ 2009-11-24 09:42 eaglegrace 阅读(201) 评论(0) 推荐(0) 编辑

摘要: 刚才刚看完Anders的PDC Talk,感觉C# 4.0的变化不是很大,但是很多改动都方便了用户的使用,有些甚至当初Anders本来不愿意加入的功能最后由于用户的呼声最后还是加进去了(如Optional Parameters),可见Anders对用户的意见还是非常重视的。稍微总结一下,C# 4.0中有下面这些功能: 1. dynamic/IDynamicObject 这个改进使得C#向动态语言又... 阅读全文
posted @ 2009-11-24 09:41 eaglegrace 阅读(139) 评论(0) 推荐(0) 编辑

摘要: 动机: 在软件构建过程中,由于需求的改变,某些类层次结构中常常需要增加新的行为(方法),如果直接在基类中做这样的改变,将会给子类带来很繁重的变更负担,甚至破坏原有设计。 如何在不更改类层次结构的前提下,在运行时根据需要透明的为类层次结构上的各个类动态添加新的操作,从而避免上述问题? 意图: 标识一个作用于某对象结构中的各元素的操作。它可以在不改变各元素的类的前提下定义作用于这些元素的新的操作。 p... 阅读全文
posted @ 2009-11-24 09:39 eaglegrace 阅读(172) 评论(0) 推荐(0) 编辑

摘要: 在软件构建过程中,某些对象的状态在转换过程中,可能由于某种需要,要求程序能够回溯到对象之前处于某个点时的状态.如果使用一些共有接口来让其他对象得到对象的状态,便会暴露对象的细节实现。我们需要实现对象状态的良好保存与恢复,但同时不会因此而破坏对象本身的封装性。 意图: 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。 我们首先看... 阅读全文
posted @ 2009-11-24 09:38 eaglegrace 阅读(166) 评论(0) 推荐(0) 编辑

摘要: 在软件构建过程中,某些对象的状态如果改变,其行为也会随之而发生变化,比如文档处于只读状态,其支持的行为和读写状态支持的行为就可能完全不同,如何在运行时根据对象的状态来透明的更改对象行为?而不会为对象操作和状态转化之间引入紧耦合? 意图: 允许一个对象在其内部状态改变时改变它的行为。从而使对象看起来似乎修改了其行为 public class Context { private State m_Sta... 阅读全文
posted @ 2009-11-24 09:37 eaglegrace 阅读(155) 评论(0) 推荐(0) 编辑

摘要: 致力于一个应该避免编写的方法。GetHashCode()仅仅用在一个地方:在基于hash(哈希)结构的集合中,用来定义key(键值)的hash值,典型的是Hashtable(哈希表)或者Dictionary(字典)容器。因为基类在对GetHashCode()的实现上存在很多问题,所以仅用在一个地方很好。对于引用类型,这也能工作但是效率低。对于值类型,基类的版本经常是不正确的,而且越来越糟。不写Ge... 阅读全文
posted @ 2009-11-24 09:33 eaglegrace 阅读(277) 评论(0) 推荐(0) 编辑