2009年3月28日
摘要: 整理一下常用的排序算法,用c#实现,以备日后再用。Code is cheap.看具体实现吧。1.冒泡排序将被排序的记录数组R[1..n]垂直排列,每个记录R[i]看作是重量为R[i].key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上"飘浮"(冒泡因此得名)。如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。[代码]冒泡算法小结:... 阅读全文
posted @ 2009-03-28 14:04 JeffWong 阅读(1013) 评论(1) 推荐(0) 编辑
摘要: 在软件开发系统中,客户程序经常会与复杂系统的内部子系统之间产生耦合,而导致客户程序随着子系统的变化而变化。举例来说,比如利用传统的三层结构,我们开发了一个客户订单管理系统,数据库表包括主要客户表,订单表,产品表。在该应用程序中,有部分操作只是简单的从数据库根据条件提取数据,不需要经过任何处理,而直接将数据显示到网页上,比如客户登陆显示等级和积分。而另外一些操作,比如客户预定定单中计算购买产品的总价... 阅读全文
posted @ 2009-03-28 12:24 JeffWong 阅读(525) 评论(0) 推荐(0) 编辑
  2009年3月25日
摘要: 策略模式:它定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的用户。举一个示例来说:一个代理机票系统,普通用户和vip用户都可以有三种预定和支付方式。按照普通的编程思路,用工厂方法或者简单工厂,在两种用户的对应类里添加设置用户预定和支付的方法就可以了,这样确实也可以解决问题。但是,如果我们的系统需求发生改变(这个经常吧?!),比如说支付和预定方式都增加了... 阅读全文
posted @ 2009-03-25 20:10 JeffWong 阅读(619) 评论(0) 推荐(0) 编辑
摘要: Template Method模式是比较简单的设计模式之一,但它却是代码复用的一项基本的技术.最近频上各大论坛头条的某高校某女生抨击教育事件,让很多人对我国的大中学生的教育普通存在的问题产生共鸣,这些个问题可以很好的阐释这个模式的应用。好了,code is cheap。让代码说话。类图:代码如下:[代码]总结:1.模板方法用最简洁的机制(虚函数的多态性)为很多应用程序框架提供了灵活的扩展点,是代码... 阅读全文
posted @ 2009-03-25 19:22 JeffWong 阅读(493) 评论(0) 推荐(0) 编辑
  2009年3月22日
摘要: 事件是委托的一种特殊形式,当发生有意义的事情时,事件处理对象通知过程。 我们接着上一篇的假想场景,并且假设主办方将参会者分两组进行发言,按照事件的方式进行处理。好了,code is cheap,上代码了: 类图: 代码部分: Code Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHi... 阅读全文
posted @ 2009-03-22 17:28 JeffWong 阅读(673) 评论(0) 推荐(1) 编辑
摘要: 委托是对函数的封装,可以当做给方法的特征指定一个名称。它本质上就是变相的类型安全的指针。 假想场景:01国际计算机语言大会上,各种计算机语言汇聚一堂,共同探讨计算机语言的发展趋势和优势。由于语言众多,主办方pc和mac决定给每位参会者10分钟发言机会。Code is cheap。看看它们都怎么说: 类图: 代码如下: Code Code highlighting produced by Acti... 阅读全文
posted @ 2009-03-22 17:02 JeffWong 阅读(711) 评论(0) 推荐(0) 编辑
  2009年3月15日
摘要: 假想场景:hp和apple是全球知名的电脑生产厂家,他们各自的电脑操作系统分别是windows和macintosh,microsoft是软件行业的龙头。为了吸引更多客户购买电脑,hp和apple请ms为他们开发两款最常用的软件,办公软件和及时通讯工具。ms结了订单后,分别为hp和apple开发了office和msn。上面的场景其实蕴含着我们常见的设计模式思维方式,code is cheap,代码来... 阅读全文
posted @ 2009-03-15 10:10 JeffWong 阅读(934) 评论(3) 推荐(1) 编辑
  2009年3月14日
摘要: 场景:微软的windows xp操作系统,ctrl+alt+del键都会弹出一个windows任务管理器(这时不关闭这个任务管理器),继续ctrl+alt+del键还是一个windows任务管理器。鉴于本人水平有限,上面的场景举例可能不合适,但是很接近一个基本的设计模式:单例模式。Code is cheap.下面用c#代码模拟出一个类似任务管理器的创建: Code Code highlightin... 阅读全文
posted @ 2009-03-14 14:46 JeffWong 阅读(2527) 评论(1) 推荐(1) 编辑
  2009年2月6日
摘要: 函数是由一个或多个Transact-SQL 语句组成的子程序,可用于封装代码以便重新使用。用户自定义函数(User Defined Functions)是SQL Server 的数据库对象,它不能用于执行一系列改变数据库状态的操作,但它可以像系统函数一样在查询或存储过程等的程序段中使用,也可以像存储过程一样通过EXECUTE 命令来执行。用户自定义函数中存储了一个Transact-SQL 例程,可... 阅读全文
posted @ 2009-02-06 20:29 JeffWong 阅读(3715) 评论(2) 推荐(3) 编辑
  2009年1月15日
摘要: 在网页中,经常需要标题里提到的几种效果,实现比较简单,这里总结一下(IE测试通过),以备日后再用。 预备知识:网页中的高和宽 另外,网页中的元素常见定位需要用到的概念一并总结一下: 来看一下笔者写的关于定位和关于宽和高的js函数: PS:关于dom的一些高和宽,下面这张图有助于我们理解的更清楚: 好 阅读全文
posted @ 2009-01-15 19:37 JeffWong 阅读(11478) 评论(6) 推荐(3) 编辑