摘要: 1.1观察者模式定义在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系”——一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好地抵御变化。使用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关系。从而实现软件体系结构的松耦合。观察者模式是满足这一要求的各种设计方案中最重要的一种。Observer设计模式是为了定义对象间的一种一对多的依赖关系,以便于当一个对象的状态改变时,其他依赖于它的对象会被自动告知并更新。观察者模式又叫做发布-订阅(Publish/Subscribe)模式,其是一种松耦合的设计模式。1 阅读全文
posted @ 2013-07-13 12:39 成长红筹 阅读(607) 评论(1) 推荐(0)
摘要: 1 事件的基本概念在基于Windows平台的程序设计中,事件(event)是一个很重要的概念。因为在几乎所有的Windows应用程序中,都会涉及大量的异步调用,比如响应点击按钮、处理Windows系统消息等,这些异步调用都需要通过事件的方式来完成。那么什么是事件呢?所谓事件,是对象内部状态发生了某些变化、或者对象做某些动作时(或做之前、做之后),向外界发出的通知。比如用户点击了鼠标、socket上有数据到达等。事件发布者: 那个触发(raise)事件的对象称为事件的发布者(event publisher)事件的订阅者: 捕获并响应事件的对象称为事件的订阅者(event Subscriber)那 阅读全文
posted @ 2012-12-22 20:35 成长红筹 阅读(413) 评论(0) 推荐(0)
只有注册用户登录后才能阅读该文。 阅读全文
posted @ 2012-03-29 13:27 成长红筹 阅读(19) 评论(0) 推荐(0)
摘要: 1.1 命名方法委托,匿名方法委托与Lambda表达式委托的基本概念在上篇文章已经总结,本篇文章主要描述三种方式的写法1.1.1 命名方法委托:代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--classMyDelegateTest{//步骤1,声明delegate对象publicdelegatevoidMyDelegate(stringname);////这是我们欲传递的方法,它与MyDelegate具有相同的参数和返回值类型publicst 阅读全文
posted @ 2011-01-16 23:21 成长红筹 阅读(1077) 评论(2) 推荐(0)
摘要: 1.1 委托的基本概念委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的调用可以像其他任何方法一样,具有参数和返回值,如下面的示例所示:C#public delegate int Calculation(int x, int y);与委托的签名(由返回类型和参数组成)匹配的任何可访问类或结构中的任何方法都可以分配给该委托。方法可以是静态方法,也可以是实例方法。这样就可以通过编程方式来更改方法调用,还可以向现有类中插入新代码。只要知道委托的签名,便可以分配自己的委托方法。注意:在方法重载的上下文中,方法的签名不包括返回值。但在委托的上下文中,签名的确包括 阅读全文
posted @ 2011-01-11 13:59 成长红筹 阅读(547) 评论(0) 推荐(0)
摘要: 1.1 基础概念 Web Service是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。通过SOAP在Web上提供的服务,使用WSDL文件进行说明,并通过UDDI进行注册。XML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是Soap的基础。Soap:(Simple Object Access Protocol)简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或 阅读全文
posted @ 2010-12-29 23:06 成长红筹 阅读(792) 评论(0) 推荐(0)
摘要: 1.1 基本概念 并发控制:主要是考虑到多个用户同时存取数据库中的同一数据的情况。sql server设计有两种并发访问的控制机制:锁、行版本控制。锁:主要用于多用户环境下保证数据库完整性和一致性.每个事务对所依赖的资源会请求不同类型的锁,它可以阻止其他事务以某种可能会导致事务请求锁出错的方式修改资源。当事务不再依赖锁定的资源时,锁将被释放。行版本控制:当启用了基于行版本控制的隔离级别时,数据库引擎将维护修改的每一行的版本。应用程序可以指定事务使用行版本查看事务或查询开始时存在的数据,而不是使用锁保护所有读取。通过使用行版本控制,读取操作阻止其他事务的可能性将大大降低。事务:事务是一个不可分割 阅读全文
posted @ 2010-12-15 23:32 成长红筹 阅读(1263) 评论(0) 推荐(1)
摘要: 1.1 定义:1.1.1 临界区(Critical Section)  临界区是一段在同一时候只被一个线程进入/执行的代码块。 1.1.2 lock 关键字将语句块标记为临界区,方法是获取给定对象的互斥锁,执行语句,然后释放该锁。此语句的形式如下:Object thisLock = new Object();lock (thisLock){ // Critical code section}lock 确保当一个线程位于代码的临界区时,另一个线程不进入临界区。如果其他线程试图进入锁定的代码,则它将一直等待(即被阻止),直到该对象被释放。1.2 Lock用法实例下例使用线程和 lock。只要 lo 阅读全文
posted @ 2010-12-12 16:23 成长红筹 阅读(2327) 评论(5) 推荐(4)