设计模式笔记(19)—观察者模式(行为型)

Gof定义定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通 知并自动更新 动机在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系” ——一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好地抵御变化。使用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关系。从而...

发布于 技术

设计模式笔记(18)—迭代器模式(行为型)

Gof定义提供一种方法顺序访问一个聚合对象中的各个元素, 而又不暴露该对象的内部表示。 动机在软件构建过程中,集合对象内部结构常常变化各异。但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以让外部客户代码透明地访问其中包含的元素;同时这种“透明遍历”也为“同一种算法在多种集合对象上进行操作”提供了可能。使用面向对象技术将这种遍历机制抽象为“迭代器对象”为“应对变化中的集合对象”提供了一种优雅的方式。

发布于 技术

Lable和Literal控件的使用和区别

Lable和Literal这两个控件是我们非常熟悉的两个控件,都是用作内容呈现用的,但他们之间也有不同之处,分别应用于不同的地方。Lable控件会将内容呈现在html标签span中,即Lable控件的Text属性的值会包含在标签中。而Literal控件生成的代码则比较干净,它的Text属性的值将直接显示在页面中,看下面两段代码: Lable: 1234<asp:Label ID=&qu...

发布于 技术

设计模式笔记(17)—中介者模式(行为型)

Gof定义用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式的相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 动机在软件构建过程中,经常会出现多个对象互相关联交互的情况,对象之间常常会维持一种复杂的引用关系,如果遇到一些需求的更改,这种直接的引用关系将面临不断的变化。在这种情况下,我们可使用一个“中介对象”来管理对象间的关联关系,避免相互交互的对象之间的紧耦合引用...

发布于 技术

设计模式笔记(16)—解释器模式(行为型)

Gof定义给定一个语言,定义它的文法的一种表示,并定义一种解释器,这个解释器使用该表示来解释语言中的句 子。 动机在软件构建过程中,如果某一特定领域的问题比较复杂,类似的模式不断重复出现,如果使用普通的编程方式来实现将面临非常频繁的变化。在这种情况下,将特定领域的问题表达为某种语法规则下的句子,然后构建一个解释器来解释这样的句子,从而达到解决问题的目的。 下面看下解释器模式的结构图: 基本...

发布于 技术

武汉 再见

从毕业到现在一直呆在武汉,已经两年多了,经历了两个公司,现在的这个公司虽小,但氛围很好,和同事也关系也相处得非常融洽,最重要的是有一个人品极佳的经理,从他身上我也学到了很多。所以说这一年多的时间里我过得还不错,我很高兴在这样的公司工作这么长时间。 然而现在我却要离开,这个想法也是最近的几个月萌发的,我必须去大城市闯一闯,因为我已经不再年轻,在不闯就真的没机会了,目标城市北京,原因有三: 我...

发布于 成长

jQuery上传插件Uploadify使用详解

本文Uploadify版本为2.1.0,已经过时,截止(2016-09-25)最新版本3.2.1的详细介绍请移步《jQuery上传插件Uploadify使用详解(3.2.1)》Uploadify是jQuery的一个上传插件,实现的效果非常不错,带进度显示。不过官方提供的实例时php版本的,本文将详细介绍Uploadify在Aspnet中的使用,您也可以点击下面的链接进行演示或下载。 官方下...

发布于 技术

2010年的第一场雪

发布于 成长

设计模式笔记(15)—命令模式(行为型)

Gof定义将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 动机在软件构建过程中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合——比如需要对行为进行“记录、撤销/重做(undo/redo)、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为...

发布于 技术

关于多线程的一个例子(UI实时显示)

在开发Window应用程序的时候,经常需要在界面上显示出已经执行到什么步骤了,拿一个简单例子来说,创建一个Winform程序,在窗体上访一个Button和一个Label,点击Button时做100次循环,在Label上实时显示当前循环的次数。一种简单的做法就是使用Application.DoEvents,代码如下: 123456789private void btnTest_Click(ob...

发布于 技术
4557