03 2007 档案

摘要:摘要:在软件系统中,有些对象有时候由于跨越网络或者其他的障碍,而不能够或者不想直接访问另一个对象,如果直接访问会给系统带来不必要的复杂性,这时候可以在客户程序和目标对象之间增加一层中间层,让代理对象来代替目标对象打点一切。这就是本文要说的Proxy模式。 阅读全文
posted @ 2007-03-31 11:05 白虎 阅读(808) 评论(1) 推荐(0) 编辑
摘要:摘要:面向对象的思想很好地解决了抽象性的问题,一般也不会出现性能上的问题。但是在某些情况下,对象的数量可能会太多,从而导致了运行时的代价。那么我们如何去避免大量细粒度的对象,同时又不影响客户程序使用面向对象的方式进行操作? 阅读全文
posted @ 2007-03-31 10:58 白虎 阅读(360) 评论(1) 推荐(0) 编辑
摘要:在软件开发系统中,客户程序经常会与复杂系统的内部子系统之间产生耦合,而导致客户程序随着子系统的变化而变化。那么如何简化客户程序与子系统之间的交互接口?如何将复杂系统的内部子系统与客户程序之间的依赖解耦?这就是要说的Façade 模式。 阅读全文
posted @ 2007-03-31 10:57 白虎 阅读(752) 评论(0) 推荐(0) 编辑
摘要:组合模式有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。 阅读全文
posted @ 2007-03-31 10:56 白虎 阅读(477) 评论(0) 推荐(0) 编辑
摘要:在软件系统中,有时候我们会使用继承来扩展对象的功能,但是由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性;并且随着子类的增多(扩展功能的增多),各种子类的组合(扩展功能的组合)会导致更多子类的膨胀。如何使“对象功能的扩展”能够根据需要来动态地实现?同时避免“扩展功能的增多”带来的子类膨胀问题?从而使得任何“功能扩展变化”所导致的影响将为最低?这就是本文要讲的Decorator模式。 阅读全文
posted @ 2007-03-31 10:54 白虎 阅读(389) 评论(0) 推荐(0) 编辑
摘要:在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式。 阅读全文
posted @ 2007-03-31 10:53 白虎 阅读(663) 评论(1) 推荐(0) 编辑
摘要:在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。那么如何应对这种“迁移的变化”?如何既能利用现有对象的良好实现,同时又能满足新的应用环境所要求的接口?这就是本文要说的Adapter 模式。 阅读全文
posted @ 2007-03-31 10:50 白虎 阅读(293) 评论(0) 推荐(0) 编辑
摘要:创建型模式,就是用来创建对象的模式,抽象了实例化的过程。它帮助一个系统独立于如何创建、组合和表示它的那些对象。本文对五种常用创建型模式进行了比较,通过一个游戏开发场景的例子来说该如何使用创建型模式。 阅读全文
posted @ 2007-03-31 10:47 白虎 阅读(420) 评论(0) 推荐(0) 编辑
摘要:在软件系统中,有时候面临的产品类是动态变化的,而且这个产品类具有一定的等级结构。这时如果用工厂模式,则与产品类等级结构平行的工厂方法类也要随着这种变化而变化,显然不大合适。那么如何封装这种动态的变化?从而使依赖于这些易变对象的客户程序不随着产品类变化? 阅读全文
posted @ 2007-03-31 10:45 白虎 阅读(315) 评论(0) 推荐(0) 编辑
摘要:在软件系统中,经常面临着“某个对象”的创建工作,由于需求的变化,这个对象的具体实现经常面临着剧烈的变化,但是它却拥有比较稳定的接口。如何应对这种变化?提供一种封装机制来隔离出“这个易变对象”的变化,从而保持系统中“其它依赖该对象的对象”不随着需求的改变而改变?这就是要说的Factory Method模式了。 阅读全文
posted @ 2007-03-31 10:37 白虎 阅读(520) 评论(0) 推荐(0) 编辑
摘要:在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法确相对稳定。如何应对这种变化?如何提供一种“封装机制”来隔离出“复杂对象的各个部分”的变化,从而保持系统中的“稳定构建算法”不随着需求改变而改变?这就是要说的建造者模式。 本文通过现实生活中的买KFC的例子,用图解的方式来诠释建造者模式。 阅读全文
posted @ 2007-03-31 10:25 白虎 阅读(584) 评论(0) 推荐(0) 编辑
摘要:在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时由于需求的变化,往往存在着更多系列对象的创建工作。如何应对这种变化?如何绕过常规的对象的创建方法(new),提供一种“封装机制”来避免客户程序和这种“多系列具体对象创建工作”的紧耦合?这就是我们要说的抽象工厂模式。 阅读全文
posted @ 2007-03-31 10:04 白虎 阅读(200) 评论(0) 推荐(0) 编辑
摘要:Singleton模式要求一个类有且仅有一个实例,并且提供了一个全局的访问点。这就提出了一个问题:如何绕过常规的构造器,提供一种机制来保证一个类只有一个实例?客户程序在调用某一个类时,它是不会考虑这个类是否只能有一个实例等问题的,所以,这应该是类设计者的责任,而不是类使用者的责任。 从另一个角度来说,Singleton模式其实也是一种职责型模式。因为我们创建了一个对象,这个对象扮演了独一无二的角色,在这个单独的对象实例中,它集中了它所属类的所有权力,同时它也肩负了行使这种权力的职责! 阅读全文
posted @ 2007-03-31 10:02 白虎 阅读(424) 评论(0) 推荐(0) 编辑
摘要:横竖都不能重复的,侃侃 阅读全文
posted @ 2007-03-27 16:20 白虎 阅读(850) 评论(0) 推荐(0) 编辑
摘要:要想操作一个数据库,不论是那种操作,首先要做的肯定是打开数据库,下面我们以ACCESS数据库来做例子说明如何打开一个数据库连接!在这里我们需要用到的是:System.Data.OleDb.OleDbConnection类!(如果操作SQL数据库,我们最好使用System.Data.SqlClient.SqlConnection类) 阅读全文
posted @ 2007-03-27 11:21 白虎 阅读(13016) 评论(4) 推荐(2) 编辑
摘要:System.Data.OleDb.OleDbDataAdapter:可以直接和DataSet联系,并操作数据源的,它的功能相对强大一些,因此也比较耗系统资源! System.Data.OleDb.OleDbDataReader:则有些类似于ADO中的哪个只读向前的记录集,它最常用在只需要依次读取并显示数据的时候,相比System.Data.OleDb.OleDbDataAdapter来说,他耗用的系统资源要小!其实,OleDbDataReader能实现的功能,OleDbDataAdapter都可以实现,不过从资源使用率的角度考虑我们应该尽量使用前者!但有些功能,却是必须使用OleDbDataAdapter才可以实现的! 阅读全文
posted @ 2007-03-27 08:38 白虎 阅读(8630) 评论(0) 推荐(0) 编辑
摘要:了解类型化 DataSet 类中的新特性、Visual Studio 2005 生成的新 TableAdapter 类,以及设计这些类的工具。此外,了解新 BindingSource 和 BindingNavigator 组件,理解如何使用它们快速构建灵活的数据绑定 WinForms 应用程序。 阅读全文
posted @ 2007-03-26 13:13 白虎 阅读(1161) 评论(0) 推荐(0) 编辑
摘要:简单的说,正则表达式是一种可以用于文字模式匹配和替换的强有力的工具。是由一系列普通字符和特殊字符组成的能明确描述文本字符串的文字匹配模式。 正则表达式并非一门专用语言,但也可以看作是一种语言,它可以让用户通过使用一系列普通字符和特殊字符构建能明确描述文本字符串的匹配模式。除了简单描述这些模式之外,正则表达式解释引擎通常可用于遍历匹配,并使用模式作为分隔符来将字符串解析为子字符串,或以智能方式替换文本或重新设置文本格式。正则表达式为解决与文本处理有关的许多常见任务提供了有效而简捷的方式。 阅读全文
posted @ 2007-03-25 22:02 白虎 阅读(326) 评论(0) 推荐(0) 编辑
摘要:正则表达式用于字符串处理,表单验证等场合,实用高效,但用到时总是不太把握,以致往往要上网查一番。我将一些常用的表达式收藏在这里,作备忘之用。本贴随时会更新。 阅读全文
posted @ 2007-03-25 21:59 白虎 阅读(217) 评论(0) 推荐(0) 编辑
摘要:内存有限,所以必须在不被占有的时候回收。 方法结束时值类型容易销毁。引用类型就不同。 阅读全文
posted @ 2007-03-25 21:57 白虎 阅读(360) 评论(0) 推荐(0) 编辑
摘要:获取系统信息 WVI应用 C#获取硬盘编号、CPU编号及类型、内存大小及使用情况 阅读全文
posted @ 2007-03-25 21:52 白虎 阅读(779) 评论(0) 推荐(0) 编辑
摘要:C#2.0中,匿名方法、IEnumerable接口和匿名方法的合作,使很多的编程任务变得非常的简单,而且写出来的程序非常的优美。 阅读全文
posted @ 2007-03-25 21:37 白虎 阅读(304) 评论(0) 推荐(0) 编辑
摘要:涉及 C# 的装箱/拆箱/别名、数值类型间相互转换、字符的 ASCII 码和 Unicode 码、数值字符串和数值之间的转换、字符串和字符数组/字节数组之间的转换、各种数值类型和字节数组之间的转换、十六进制数输出以及日期型数据的一些转换处理, 阅读全文
posted @ 2007-03-25 21:32 白虎 阅读(308) 评论(0) 推荐(0) 编辑
摘要:事件(event)是一个非常重要的概念,我们的程序时刻都在触发和接收着各种事件:鼠标点击事件,键盘事件,以及处理操作系统的各种事件。所谓事件就是由某个对象发出的消息。比如用户按下了某个按钮,某个文件发生了改变,socket上有数据到达。触发事件的对象称作发送者(sender),捕获事件并且做出响应的对象称作接收者(receiver),一个事件可以存在多个接受者。 阅读全文
posted @ 2007-03-25 20:51 白虎 阅读(442) 评论(1) 推荐(0) 编辑
摘要:冒泡排序、选择排序 、插入排序 、希尔排序 阅读全文
posted @ 2007-03-25 16:38 白虎 阅读(325) 评论(0) 推荐(0) 编辑
摘要:8数或15数问题是同一个问题,其就是一个随机排列的8个或15个数在一个方正格子中移动到达规定的一个目标状态。由于只有一个空格子,故只有在空格附近的棋子可以移动。 阅读全文
posted @ 2007-03-25 16:37 白虎 阅读(306) 评论(0) 推荐(0) 编辑
摘要:当我要写一个MD5算法的程序时,发现中英文的语言描述都有一些不确切的地方,某些个细节 讲得不清楚,或者说很费解。最后不得不拿出C语言的源程序来调试,这对于理解算法是很不 利的。于是就总结了一下我摸索到的一些要点 阅读全文
posted @ 2007-03-25 16:35 白虎 阅读(384) 评论(0) 推荐(0) 编辑
摘要:在以往的编程中,比如编写用户的资料时,有时需要确认用户输入的Email是否真实有效,以前我们最多只能做到验证Email是否包含了某些特殊的字符,比如"@",".",".com"等,做到的只是判断了Email的合法性,证明用户填写的Email格式是正确的,但是这个Email是否真正的存在于网络中,则没有办法。 阅读全文
posted @ 2007-03-25 16:11 白虎 阅读(695) 评论(0) 推荐(0) 编辑
摘要:通过对产生的WMI的实例集合进行检索获得 ,System.Management命名空间里面提供了相关方法,注意ConnectionOptions类\ManagementScope 类登几个类 阅读全文
posted @ 2007-03-25 16:00 白虎 阅读(1801) 评论(0) 推荐(0) 编辑
摘要:我们在 VB 中的数据类型之间的转换是非常容易的cStr,cInt等等的函数,我们大家在使用的时候应该都已经是非常的清楚了,现在可以用C#做Web应用了!这下 我们又多了一种语言的选择,再加上确实有很多人对VB编程怀有很多的不理解:(,所以他们宁可使用C#进行编程,也有很多的同志立场不坚定!也想学习学习C# 阅读全文
posted @ 2007-03-25 02:02 白虎 阅读(222) 评论(0) 推荐(0) 编辑
摘要:源代码,单件模式 阅读全文
posted @ 2007-03-25 01:58 白虎 阅读(992) 评论(0) 推荐(0) 编辑
摘要:c#关于查寻数据库的行数 阅读全文
posted @ 2007-03-25 01:51 白虎 阅读(1944) 评论(0) 推荐(1) 编辑
摘要:Socket就是套接字,它是网络编程中最常用遇到的概念和工具。在TCP/IP网络中,传送和接收数据就会经常使用到Socket,由于使用Socket能够在网络上处理复杂数据,所以在各种网络应用程序中,涉及到数据传送和接收,一般都会使用Socket,可见要掌握网络编程,精通Socket是非常重要。由于Socket本身的复杂性,决定了掌握它是比较困难的。Visual C#是微软公司推荐的开发.Net平台应用程序的主要语言,随着.Net的深入人心,目前很多有远见的公司都把以前的软件转向了.Net平台。掌握网络编程始终是学习一种开发语言的重点,这一点对于Visual C#也同样如此。Visual C#实现网络功能其关键也是掌握托管Socket的使用方法。本文就来详细介绍Visual C#中利用托管Socket实现网络数据传送和接收的实现方法及其注意事项。 阅读全文
posted @ 2007-03-16 15:04 白虎 阅读(7459) 评论(7) 推荐(0) 编辑
摘要:调用Thread.Sleep使当前线程阻塞一段时间,休眠,直到调用Thread.Interrupt,另一个线程中断或被Thread.Abrot终止。 注意:一个线程不能对另一个线程Sleep. Thread.Suapend暂停一个线程,自身调用,该调用阻塞,直到该线程被另一个线程继续为止。当另一个线程调用它,将会对该线程暂停。 Thread.Resume将使另一个线程跳出挂起状态并继续执行,而与调用SuSpend的次数无关。 阅读全文
posted @ 2007-03-16 10:02 白虎 阅读(14791) 评论(1) 推荐(0) 编辑

非常感谢dudu,感谢博客园提供的各种服务。
联系白虎(David.Du)
点击右上角即可分享
微信分享提示