动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。有时我们希望给某个对象而不是整个类添加一些功能。例如,一个图形用户界面工具箱允许你对任意一个用户界面组件添加一些特性,例如边框,或是一些行为,例如窗口滚动。使用继承机制是添加功能的一种有效途径,从其它类继承过来的边框特性可以被多个子类的实例使用。但这种方法不够灵活。因为边框的选择是静态的,用户不能控制对组件加边框的方式和时机。一种极为灵活的方式是将组件嵌入另一个
系统 2019-08-29 23:40:19 2171
原文链接:http://blog.csdn.net/historyasamirror/article/details/4270633作为程序员从应用层面来考虑的四个概念同步阻塞IO:在这个模型中,应用程序(application)为了执行这个read操作,会调用相应的一个systemcall,将系统控制权交给kernel,然后就进行等待(这其实就是被阻塞了)。kernel开始执行这个systemcall,执行完毕后会向应用程序返回响应,应用程序得到响应后,
系统 2019-08-29 23:17:51 2171
如果在初始化一个IndexWriter索引器的时候,指定useCompoundFile=false,则在指定的索引目录中生成的索引文件就不是.cfs复合索引文件。通过这种方式生成的索引文件,它的不同格式表明了它锁存储的关于索引的不同内容。至少,明确了在建立索引过程中,经过加工处理的数据究竟去向如何,能够加深对Lucene索引过程的理解。通过在文章Lucene-2.2.0源代码阅读学习(4)中的那个例子,可以运行主函数,观察到索引目录中生成了大量的不同扩展名
系统 2019-08-29 22:58:01 2171
内存镜像法的步骤(1)用OD打开软件(2)点击选项——调试选项——异常,把里面的忽略全部√上。CTRL+F2重载下程序(3)按ALT+M,打开内存镜象,找到程序的第一个.rsrc.按F2下断点,然后按SHIFT+F9运行到断点,接着再按ALT+M,打开内存镜象,找到程序的第一个.rsrc.上面的代码段.text(或者CODE)(也就是00401000处),按F2下断点。然后按SHIFT+F9(或者是在没异常情况下按F9),直接到达程序OEP实战1查壳用PE
系统 2019-08-29 22:51:08 2171
昨天下载了一个将近一G的软件,在解压时,提示“CRC校验失败,文件被破坏”,不至于再重新下载吧,需要四个多小时呢,网上的方法也试了好多种,都不好用...我采用的方法很简单:在没有解压完(提示出错的情况下)拷贝文件到其它目录,等解压完成,OK,文件依然好用,这个方法应该是有针对性地,还是枚举一下网络的做法。网络的方法:办法一:WinRAR本身就带有压缩包修复功能。点击菜单“工具”下的“修复压缩文件”即可,快捷键是“ALT+R”。此法可修复一部分压缩包的常规错
系统 2019-08-29 22:41:41 2171
cd/etc/vim/vivimrc0硬首^软首(不含blank。如:空格,tab,换行,回车除外)$硬尾g_软尾(不含blank)uundo类似Ctrl+zCtrl+rredo类似Ctrl+yC+nC+p单词联想100iChina显示ChinaChinaChina……100组0^g_$___xxxxxxx_____ZZ:wqnw词首e词尾W反向词首E反向词尾*正向查找光标停留单词#反向%符号匹配0y$复制正行0d$删除正行gU
系统 2019-08-29 22:14:07 2171
今天这堂培训课讲什么呢?我既不讲Spring,也不讲Hibernate,更不讲Ext,我不讲任何一个具体的技术。我们抛开任何具体的技术,来谈谈如何提高代码质量。如何提高代码质量,相信不仅是在座所有人苦恼的事情,也是所有软件项目苦恼的事情。如何提高代码质量呢,我认为我们首先要理解什么是高质量的代码。高质量代码的三要素我们评价高质量代码有三要素:可读性、可维护性、可变更性。我们的代码要一个都不能少地达到了这三要素的要求才能算高质量的代码。1.可读性强一提到可读
系统 2019-08-29 21:58:58 2171
使用order-by属性,我们可以通过hbm文件执行生成的SQL如何使用orderby查询子句以返回排序后的结果集数据库结构:createtableteamOrder(idvarchar(32),teamnamevarchar(32));createtablestudentOrder(idvarchar(32),namevarchar(32),descriptionvarchar(32),team_idvarchar(32));insertintoteam
系统 2019-08-12 09:30:33 2171
Ctrl+Shift+Spacebar创建不间断空格Ctrl+连字符创建不间断连字符Ctrl+B使字符变为粗体Ctrl+I使字符变为斜体Ctrl+U为字符添加下划线Ctrl+Shift+增大字号Ctrl+Q删除段落格式Ctrl+Spacebar删除字符格式Ctrl+C复制所选文本或对象Ctrl+X剪切所选文本或对象Ctrl+V粘贴文本或对象Ctrl+Z撤消上一操作Ctrl+Y重复上一操作F1获得联机帮助或Office助手F2移动文字或图形F3插入自动图文集
系统 2019-08-12 09:26:59 2171
http://acm.hdu.edu.cn/showproblem.php?pid=1014给出式子seed(x+1)=[seed(x)+STEP]%MODseed初始为0,给出STEP和MOD的值问seed能否取到0~(MOD-1)之间的所有值简单模拟#includeintmain(){intStep,Mod,i,Seed,Flag[100005];while(scanf("%d%d",&Step,&Mod)!=EOF){for(i=0
系统 2019-08-12 09:26:57 2171