注意:文中代码有误,为保留历史痕迹在本文不做修改,正确代码详见《纠错》在做系统的时候有意识的用到了抽象工厂这个设计模式,主要解决的是数据库更换的问题。下面就以简单的登录来逐步的分析一下这个模式。经典的三层架构数据库如下1.一般的数据库连接方式界面层1:PublicClassLogin2:PrivateSubbtnLogin_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlesbt
系统 2019-08-29 23:01:41 1747
需求说明GridView/DataGrid本身均支持行选择事件(通过设置Button/LinkButton.CommandName="Selected",并在SelectedIndexChanged事件中处理)。然而,有时候我们希望用户点击GridView/DataGrid一行中任意位置都可以实现触发一个事件,并在服务端对此行进行相应处理,现在我们就实现此功能。实现方式这里我们采取的方法有点"hack":通过客户端javascript引发行中隐藏的按钮(B
系统 2019-08-29 22:51:49 1747
Repository即源码的集中存放处,所有修改后提交的源码就是保存在这里,并在其中记录所有的修改版本,分支版本,版本合并,以及并发修改处理等。SVN最主要的功能是用于团队开发时用的,用于处理源码修改的版本控制和并发修改冲突。对于个人开发来说,虽然不存在并发修改冲突的问题,但个人源码可以使用到SVN的版本控制功能,以便找到开发过程中的版本记录。一般个人没有条件也没必要搭一个独立的服务器来做Repository,在本机的开发过程中误删代码的情况有可能会发生,
系统 2019-08-29 22:48:54 1747
.NET值类型变量“活”在哪个堆栈中?——MSIL学习笔记(一)金旭亮不管是什么语言编的.NET程序,最后都会被各自的编译器编译成MSIL。当程序运行时,.NE
系统 2019-08-29 22:30:59 1747
上次说了基本的形变,现在说下提示点,提示点是控制图形变化的基本,它是按照节点的位置移动来计算整个图形移动.一般来分是2个地方要加,1是移动位置和变化最小,主要作用是固定图形这个点是主要的.第2个就是移动和变化最大的点,我们一般看到的效果全靠这些点来控制.作为快速制作一般加第1种就可以了(前提是节点必须少),而第2种就要麻烦和耽误时间了,不过制作还是很快的.这里我在眼角,头发上各加了一个提示点(因为是快速制作其他地方没加)后来发现原来头发画的时候右边有个色块
系统 2019-08-29 22:23:44 1747
一直都对as3的声音架构设计感到困惑,as3为什么要把播放和停止方法分开呢?为什么不能用一个Sound更换载入的声音呢?这几天有空专门专研了一下。原来as3对声音的设计也是深思熟虑的。目的不是为了把问题搞得复杂,而是为了在功能强化的同时做到精简。并尽可能方便我们使用。现在把我这两天的理解拿出来共享,有什么不到位的地方请多多建议。[1b]架构图:[/1b][url=http://bbs.actionscript3.cn/attachment.php?aid=
系统 2019-08-29 22:23:39 1747
为了推广自由以及开源软件,让广大老师学生、软件爱好者使用者能够更深刻地感受到软件自由的重要性、体会到自由和开源软件的乐趣,在每年九月的第三个星期六,全球各地的团体自发举办各式各样的活动,共同庆祝自由软件日。这次活动就是由武汉大学开源技术俱乐部主办,自强网络、网络编程协会、信息安全协会协办的一个华中地区的自由软件盛会。由于我们俱乐部刚刚成立,在组织中还有很多问题望同行和朋友们多多指教。到场嘉宾:Sun湖北、湖南上海区销售经理简波资深软件开发工程师、武汉大学国
系统 2019-08-29 22:17:16 1747
1.缘起:假设我们要开发一个多人跳棋游戏。在跳棋游戏中,当一个人走一步棋之后,控制权就轮到下一家,如此轮询,一圈之后控制权又回到自己,然后再继续轮圈下去。我们可以使用数组或列表等数据结构来解决这种转圈圈的问题,但是始终都不够直观。我设计了Circle来对“圈”这种数据结构进行抽象,我们在类似跳棋这样的游戏中可以非常方便地直接使用它。Circle的形象示意图如下:2.适用场合:需要类似“圈”这样的数据结构支持的场合。3.设计思想与实现Circle也是一个非常
系统 2019-08-29 22:15:04 1747
在Java开发特别是数据库开发中,经常会用到Class.forName()这个方法。通过查询JavaDocumentation我们会发现使用Class.forName()静态方法的目的是为了动态加载类。在加载完成后,一般还要调用Class下的newInstance()静态方法来实例化对象以便操作。因此,单单使用Class.forName()是动态加载类是没有用的,其最终目的是为了实例化对象。这里有必要提一下就是Class下的newInstance()和ne
系统 2019-08-29 22:02:43 1747
编者按:2008年8月4日,StackOverflow网友BertF发帖提问:哪本最具影响力的书,是每个程序员都应该读的?“如果能时光倒流,回到过去,作为一个开发人员,你可以告诉自己在职业生涯初期应该读一本,你会选择哪本书呢?我希望这个书单列表内容丰富,可以涵盖很多东西。”很多程序员响应,他们在推荐时也写下自己的评语。以前就有国内网友介绍这个程序员书单,不过都是推荐数Top10的书。其实除了前10本之外,推荐数前30左右的书籍都算经典,伯乐在线整理编译这个
系统 2019-08-29 22:01:08 1747