02 2009 档案

摘要:引言如果你看过了 C#中的委托和事件 一文,我想你对委托和事件已经有了一个基本的认识。但那些远不是委托和事件的全部内容,还有很多的地方没有涉及。本文将讨论委托和事件一些更为细节的问题,包括一些大家常问到的问题,以及事件访问器、异常处理、超时处理和异步方法调用等内容。为什么要使用事件而不是委托变量?在 C#中的委托和事件 中,我提出了两个为什么在类型中使用事件向外部提供方法注册,而不是直接使用委托变量的原因。主要是从封装性和易用性上去考虑,但是还漏掉了一点,事件应该由事件发布者触发,而不应该由客户端(客户程序)来触发。这句话是什么意思呢?请看下面的范例:NOTE:注意这里术语的变化,当我们单独谈 阅读全文
posted @ 2009-02-28 22:50 音乐啤酒 阅读(174) 评论(0) 推荐(0) 编辑
摘要:最近网友一直在讨论这个问题,搜索引擎过后网上抓文总结如下: 工厂方法UML图: 抽象工厂UML图: ---------------------------------对于java来说,你能见到的大部分抽象工厂模式都是这样的: 它的里面是一堆工厂方法,每个工厂方法返回某种类型的对象。比如说工厂可以生产鼠标和键盘。那么抽象工厂的实现类(它的某个具体子类)的对象都可以生产鼠标和键盘,但可能工厂A生产的是罗技的键盘和鼠标,工厂B是微软的。这样A和B就是工厂,对应于抽象工厂; 每个工厂生产的鼠标和键盘就是产品,对应于工厂方法;用了工厂方法模式,你替换生成键盘的工厂方法,就可以把键盘从罗技换到... 阅读全文
posted @ 2009-02-27 00:26 音乐啤酒 阅读(549) 评论(0) 推荐(0) 编辑
摘要:1.单一职责原则单一职责原则:就一个类而言,应该仅有一个因其他变化的原因。如果一个类承担的职责过多,就等于把这些职责耦合在一起,当一个职责变化的可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离,2.开放-封闭原则开放-封闭原则:是说软件实体(类,模块,函数等等)应该可以扩展,但是不可修改。无论一个模块是多么的“封闭”,都会存在一些变化,既然不可能完全封闭,设计人员必须对他设计的模块应该对哪种变化封闭做出选择,他必须先猜测最有可能发生的变化种类,然后构造抽象来隔离那些变化。 阅读全文
posted @ 2009-02-25 19:19 音乐啤酒 阅读(207) 评论(0) 推荐(0) 编辑
摘要:模板方法模式:定义一个操作中的算法骨干,而将这些步骤延迟到子类中,模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特点步骤。实例图:抽象类定义算法的骨干(TemplateMethod)和可能使用到的算法(primitiveoperation1,2)这2个算法由子类继承并且实现。concreteClass类继承抽象类,实现primitiveMethod方法。功抽象类的实例在骨干方法中调用模板方法模式是通过把不变的行为搬移到超类中,去除子类中重复代码来体现他的优势。模板方法模式提供了一个很好的代码复用平台。当不变和可变的行为在方法的子类中实现中混混合在一起的时候,不变的行为就会在 阅读全文
posted @ 2009-02-25 17:36 音乐啤酒 阅读(176) 评论(0) 推荐(0) 编辑
摘要:策略模式:定义算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。 简单工厂:将对象的创建完全独立出来,让对象的创建和具体的使用客户无关。 简单工厂严格意义上不是一种设计模式,只能是一种良好的编程习惯。简单工厂模式是创建的对象,且由该对象调用其内部的指定算法,主要是针对的对象之间的行为差异,单独封装 策略模式是针对的对象内部行为的算法,可以看作是一个集合,是允许多个策略实体进行叠加的。但工厂模式就不成。这是csdn一些人的看法首先简单工厂模式,属于创建者模式,他是讲究类的创建的,策略模式输入行为模式,是说一个事情的多种实现算法的,算法不同。从代码层次来看:简单 阅读全文
posted @ 2009-02-24 18:20 音乐啤酒 阅读(174) 评论(0) 推荐(0) 编辑
摘要:using System;using System.Security.Cryptography;using System.Web.Security;using System.IO;using System.Text;/// <summary>/// CryptTo 实现加密、解密算法/// </summary>public class CryptTo{ /// <summary> /// 根据任意字符生成Des密钥 /// </summary> /// <param name="secret">生成密钥的种子字&l 阅读全文
posted @ 2009-02-21 19:24 音乐啤酒 阅读(757) 评论(0) 推荐(0) 编辑
摘要:提高网站速度的最佳实践【翻译】原文地址是这个地方:http://developer.yahoo.com/performance/rules.html,英语水平有限,翻译可能不到位,自己再看看这个英文原版了。1.最小化HTTP请求终端用户响应时间的80%用在前端显示上,大部分时间浪费在下载页面组件上面,比如:图片,css样式,flash,脚本等等,降低返回的http请求的页面的组件数量,这是加快页面的重要环节。减少页面组件的一个方法就是简化页面设计,但是如果要设计一个富页面应用的web系统如何减少组件呢?下面有些技术可减少http请求,同时可以开发富页面程序css样式是减少图片数量的一个比较好的 阅读全文
posted @ 2009-02-17 22:04 音乐啤酒 阅读(252) 评论(0) 推荐(0) 编辑
摘要:这里的大型网站架构只包括高互动性高交互性的数据型大型网站,基于大家众所周知的原因,我们就不谈新闻类和一些依靠HTML静态化就可以实现的架构了,我们以高负载高数据交换高数据流动性的网站为例,比如海内,开心网等类似的web2.0系列架构。我们这里不讨论是PHP还是JSP或者.NET环境,我们从架构的方面去看问题,实现语言方面并不是问题,语言的优势在于实现而不是好坏,不论你选择任何语言,架构都是必须要面对的。 这里讨论一下大型网站需要注意和考虑的问题 1、海量数据的处理 众所周知,对于一些相对小的站点来说,数据量并不是很大,select和update就可以解决我们面对的问题,本身负载量不是很大,最多 阅读全文
posted @ 2009-02-16 19:02 音乐啤酒 阅读(137) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示