设计模式笔记(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...

发布于 技术

设计模式笔记(14)—模板方法模式(行为型)

Gof定义定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个 算法的结构即可重定义该算法的某些特定步骤。 动机在软件构建过程中,对于某一项任务,它常常有稳定的整体操作结构,但各个子步骤却有很多改变的需求,或者由于固有的原因(比如框架与应用之间的关系)而无法和任务的整体结构同时实现。如何在确定稳定操作结构的前提下,来灵活应对各个子步骤的变...

发布于 技术

在JS方法中返回多个值的三种方法

在使用JS编程中,有时需要在一个方法返回两个个或两个以上的数据,用下面的几种方法都可以实现: 1 使用数组的方式,如下: 12345678910111213141516171819202122<html><head> <title>JS函数返回多个值--oec2003</title></head><body> ...

发布于 技术

设计模式笔记(13)—代理模式(结构型)

Gof定义为其他对象提供一种代理以控制对这个对象的访问。 动机在面向对象系统中,有些对象由于某种原因(比如对象创建的开销很大,或者某些操作需要安全控制,或者需要进程外的访问等),直接访问会给使用者、或者系统结构带来很多麻烦。如何在不失去透明操作对象的同时来管理/控制这些对象特有的复杂性?增加一层间接层是软件开发中常见的解决方式。看下结构图: Subject:该类中定义了一些RealSubj...

发布于 技术
4456