大道至简

无尽
XP agile SE
UT Mock T
  博客园 :: 首页 ::  :: 联系 :: 订阅 订阅 :: 管理

2011年12月16日

摘要: 索引的用途索引的主要作用就是为加快检索的速度(效率)。主要是为查询。这里的查询包括表自身的查询,还包括连接查询。此外,sql的查询优化器(隐式的)也依赖索引,如果使用索引比不使用索引时效率高,那优化器就会选择使用索引。索引可能极大提高检索的速度。例如:图书馆的图书如果无序排放,则要找《水浒传》这一本书,极有可能会把所有书都翻一遍,当然也有可能会第一本书就是它。如果给图书馆的图书按书名分列于不同书架,以字母排序,那找到S列书架,然后找Sh,shu,shui,然后找在shui书架中再找hu,然后找zhuan,那么就会找到这本书。索引的分类索引分聚集(聚簇)索引和非聚集(聚簇)索引。聚集索引:表中的阅读全文

posted @ 2011-12-16 11:07 梅桦 阅读(64) 评论(0) 编辑

2011年8月30日

摘要: 装饰者,decorator,定义是:动态将责任附加到对象上,若要扩展功能,装饰比继承提供了更具弹性的的替代方案。定义很简单,而且每个人大概都有个模糊的概念和理解,但装饰者到底是为解决什么问题的?什么情况下可以应用这种模式?它到底是怎么样的?从定义上,可以找到几个关键词:动态,责任,附加,对象,扩展,弹性。动态,表示它不是死的,固定的。责任,这里指对象的功能,类的作用,例如,行为。附加,表示它是一种次要的事物,要依附主要事物。扩展,表示它不是封闭的。弹性,物理上表示物体受到外力发生形变,除去外力后恢复原来状态。它指的是一个量因受到另一个量的变化而变化。如果一个量变化大,那它的量变化也大,反之则小阅读全文

posted @ 2011-08-30 11:20 梅桦 阅读(78) 评论(0) 编辑

2011年8月26日

摘要: 场景:水加热器,如果水温到95以上时,加热器的警报器会响且水温显示屏会显示当前的温度。实现一:加热行为时,如果水温(状态)发生改变,到95度以上,那会同时调用行为:警报和显示。publicclassHeater{int_temperature;publicvoidBoilWater(){for(inti=0;i<101;i++){if(i>95){_temperature=i;MakeAlert(_temperature);ShowMessage(_temperature);}}}publicvoidMakeAlert(intiTemperature){Console.WriteL阅读全文

posted @ 2011-08-26 17:29 梅桦 阅读(53) 评论(0) 编辑

2011年8月25日

摘要: 先熟悉一下重要的概念:面向接口编程这里的接口指的不是狭义上的Interface,而是说抽象层次高的编程,也就是父类级。可以是普通类、抽象类、接口(interface)等。实现面向接口编程的基础就是多态。多态有好几种意义,但最常用,也是暗指的就是:父类的引用可以指向子类的对象实例。那么这种情况下此实例在不进行类型转换时表面上是一个父类型,所以只能访问父类中公开的属性和行为等成员;但实际上这个实例的类型是子类类型,进行类型转换后,除了继承自父类的成员外,还带有自己的成员。publicclassAnimal{publicvoidShow(){Console.WriteLine("fathe阅读全文

posted @ 2011-08-25 15:34 梅桦 阅读(62) 评论(0) 编辑

2011年8月10日

摘要: 创建类: class后跟类名,其中类名的首字母必须要大写。实例化时,通过new方法实例化。在c#中有构造器,构造器与类同名。在ruby中,构造器为initialize方法。当通过new方法实例化一个类对象后,会自动调用initialize方法,把new中的参数传递给initialize方法进行初始化。在c#中的域,在ruby中称为实例变量,定义时前边加@前缀,表示是一个实例变量。classCustomerdefinitialize(name,age)@name,@age=name,ageendendc1=Customer.new("Tom",20)访问器实例变量只能通过实例阅读全文

posted @ 2011-08-10 16:55 梅桦 阅读(150) 评论(0) 编辑

2011年8月8日

摘要: Ruby中的方法是一个有名称的代码块,是与一个或多个对象关联的参数化的代码。调用时须给出方法名,接收者(所在对象),参数值,且最后一个表达式的值做为返回值。与Ruby方法相似的是代码块,它没有名字,且调用时只通过迭代器或被间接调用。(一)方法(1)定义方法定义方法就是def 方法名(参数列表)方法体end最后一个表达式做为返回值返回,如果有值,则返回;无值则返回nil。可以省略return。在类中定义的方法为实例方法,实例方法可以在类的实例对象上使用。如果是在一个特定的对象上定义方法,那么此方法就是一个单键方法,只能在这个对象上使用。classTestdefinstance_method_te阅读全文

posted @ 2011-08-08 16:56 梅桦 阅读(147) 评论(0) 编辑

摘要: (一)条件判断条件判断为基本式:if expression codeend表达式如果不是false或nil,则可执行code部分,所以对于else来说,如果为false或nil,则else下的代码是要执行的。要注意的是表达式与执行代码之间要有分界符:例如换行或分号或是then关键字。多条件分支情况下,除了可以用else if之外,可以用省略式:elsifif expression1 code1elsif expression2 code2else code3end如果通过then做为分界符:if expression then code end,那么可以把if直接做为分界符:code if e阅读全文

posted @ 2011-08-08 13:41 梅桦 阅读(116) 评论(0) 编辑

2011年8月4日

摘要: (一)数值类型(1)整型整型分两种,如果在31位以内(四字节),那为Fixnum实例。如果超过,即为Bignum实例。#整型Integer以下是一些整型字面量#字面量(literal):代码中能见到的值,数值,bool值,字符串等都叫字面量#如以下的0,1_000_000,0xa等a1=0#带千分符的整型a2=1_000_000#其它进制的表示a3=0xaputsa1,a2putsa3#putsprint都是向控制台打印字符,其中puts带回车换行符=begin这是注释,称作:嵌入式文档注释类似C#中的/**/=end(2)浮点型#浮点型f1=0.0f2=2.1f3=1000000.1puts阅读全文

posted @ 2011-08-04 17:12 梅桦 阅读(261) 评论(0) 编辑

2011年3月31日

摘要: (一) 加密服务提供程序缩写为:CSP,全称为:Cryptographic Service Provider 即加密服务提供者。它是windows系统中提供的用于加密的软硬件组件。通过对微软的加密应用程序接口即CrytoAPI(或CAPI)的编程访问它来提供身份验证、编码和各种的加密、签名算法。如下图:应用程序不是直接与某个CSP通信。它会调用CAPI的函数,然后操作系统通过CrytoSPI(一个系统接口)筛选这些调用并且把这些调用传递到适合的CSP函数。然后CSP通过对参数的解析调用适当的CSP函数,最后向操作系统返回期盼值(加密操作是由特定的CSP来完成的)。每个CSP是实现全部加密操作的阅读全文

posted @ 2011-03-31 12:10 梅桦 阅读(654) 评论(0) 编辑

2011年3月11日

摘要: (一)javascript表达式表达式是什么?表达式是对变更进行赋值、更改或计算等操作的语句。它是变量、常量、操作符的综合。根据操作符的不类型,可以分为字符操作表达式、赋值表达式、逻辑表达式、关系表达式、自增自减表达式、位表达式等。例如:x+y5>0A++Z=1+1另外还有一种逗号表达式:x+y,z++(二)小括号最常见的小括号的用法有好多种,并且常用。(1)函数的输入参数部分例如:function fun1()(2)语句的辅助例如:while();if();for()(3)类对象的构造方法Var now=new Date()(4)强制表达式运算这个作用其实也在用,但没有前边3种用得明晰阅读全文

posted @ 2011-03-11 14:25 梅桦 阅读(343) 评论(0) 编辑