分类目录归档:编程&学习

考前复习必备——达芬奇睡眠法

达芬奇睡眠法
  画坛泰斗达·芬奇是一位刻苦勤勉、惜时如金的人,他创造的定时短期睡眠延时工作法甚为人们所称道。这一方法是通过对睡与不睡的硬性规律性调节来提高时间利用率,即每工作4小时睡15分钟。这样,一昼夜花在睡眠上的时间累计只有1.5小时,从而争取到更多的时间工作。
  前几年,意大利著名生理学家克拉胡迪奥·斯塔皮参照达·芬奇的方法,对一位航海运动员进行了长达两个月的类似睡眠试验。经测试,受试者的逻辑思维和记忆运算等能力均完好无损。这说明达·芬奇睡眠法不仅能满足机体代偿功能的需要,而且还预示着利用人体生理潜力的广阔发展前景。
  然而,有趣的是,在20年前,一位画家就这一方法进行了亲身试验,证实了它的有效性。可是不到半年时间,他又回到正常的8小时睡眠上来。谈及个中原因,画家不无幽默地承认自己并非天才,更不知道这些多出来的时间该如何打发。
==case 1==
一个提醒:当你处于θ波时,你的大脑细胞会调整它的钠离子和钾离子的比例。钠&钾离子的比例涉及到细胞渗透压和细胞间物质的传送。通常情况下,我们都处于β波,是一种轻微的紧张状态,这使我们的钠&钾离子的比例逐渐失衡,这就是引起我们感到疲劳的原因。一个段简短的θ波(5~10分钟)就可以恢复我们的钠&钾离子的比例平衡并让我们感到精神百倍。这也是小睡带给我们的好处。
转变为我睡眠的睡眠周期并不是一件难事,我是逐渐调整的。慢慢减少晚上的睡眠时间,并在傍晚设置一个小睡时间。小睡的时间只有2个选择,20分钟或90分钟。20分钟的小睡只让你进入第一个睡眠阶段,避免你进入更深的睡眠,使你醒来时精神百倍。
我个人小睡睡90分钟,只是因为我想要一个完整阶段的睡眠。我喜欢睡觉,我并不逃避它。对我来说,睡眠的时间表是很固定的。我享受着小睡的乐趣,我晚上的睡眠也很深(以前我睡得很浅,而且一天睡8、9个小时依然头昏脑胀),清醒而又舒畅。这就像吃一份丰富的大餐。你知道什么时候应该去睡眠,又知道什么时候应该醒来。一切都是那么的舒适与自然。
我写这篇文章的时候是在2003年的开始,现在已经2005年了,我的睡眠模式很固定,每天都只睡4个半小时。我很健康,几乎不生病,我现在不吃糖类,只吃蔬菜和蛋白质。我的胆固醇很低,创造力前所水有地好。很多人问我如何采取这样的睡眠,我认为关键有2个
1、测量你睡眠周期的长度。90分钟是一个平均值,但是对一些人来说它是不一样的。我自己的睡眠周期长度在这几年来已经从90变成75了。现在,如果我在晚上 7点开始小睡,我会在晚上8:15起来,从来不需要用闹钟。因为睡眠周期长度的改变,我一天睡4个周期长度,晚上长睡3个周期,傍晚小睡1个周期。
2、关键是,要把一天的睡眠分成2个阶段,如果你一天只睡4.5小时然后说“我今天的睡眠已经完成了”,也许你在剩余的19个小时会受不了。你必须把它分成2个或2个以上的睡眠阶段。你要把小睡间隔开来,才能发挥它恢复你大脑功能的作用。
==case 2==
本文重点并非关注是否缺乏睡眠,而是关于如何更聪明地睡觉,讨论什么才是符合我们自然天性的睡眠方式
  我总是和别人说,每天只需睡6个小时,甚至仅仅4个半小时就足够了。个中的秘密并非缘于睡眠的质量,而在于睡眠的时间本身——如果睡眠时间为90分钟的倍数,这将会改变你的人生。
  1个半小时
  3个小时
  4个半小时
  6个小时
  7个半小时
  上面这些数字应该就是你所应得到的睡眠时间,这也是你身体自然的生理需求。我向毛主席保证,如果关掉闹钟后去睡觉,醒来时再看一下钟,你会发现一共睡了90分钟的倍数时间。而这个90分钟,便是所谓的睡眠周期。
  一般来说,我在晚上睡3个小时,并会在傍晚打盹小憩90分钟。加起来一共也就4个半小时,而我的头脑能够一直保持清醒,感觉睡眠充足且精神饱满。如果想了解原因,就看看下面这些科学的解释吧……
  “哈佛大学的研究组对志愿者们进行了针对一项视觉任务的特殊训练,任务要求志愿者从屏幕上快速转变的一些图案中,指认出特定的图案。10小时之后再次进行测试时,休息过90分钟的志愿者组要比那些没有休息过的完成得好。而事实上,他们和那些休息了一晚的志愿者们几乎完成得一样棒。” 

  “研究指出,睡眠时间并不是醒来后是否清醒的原因,关键则是睡觉时所完成的睡眠周期个数。每个睡眠周期都有五个明显的阶段,分别显现出不同的脑波征象。从我们研究的角度来说,这意味着平均每个睡眠周期有90分钟:65分的正常睡眠期,或者说非REM 期(REM:快速眼球转动);然后是20分钟的REM睡眠期(此时大脑做梦);最后的5分钟又是非REM期。一般来说,REM期在较早几个睡眠周期中,持续时间较短(少于20分钟),而在后几个周期中为时更久(多于20分钟)。假使我们在没有设置闹钟,并且没有任何其他外界干挠的情况下自然睡眠,平均会在 90分钟的倍数时间后醒来——举例子来说,就像4个半小时、6小时、7个半小时、或者是9个小时等,而非7个小时或 8小时后醒来,因为这些不是90分钟的倍数。处于两个周期之间的时间段,我们并未真正处于睡眠状态:该时期人的意识朦胧模糊,如果此时未被干扰(如光、寒冷、尿急、噪音等刺激)的话,将会进入下一个90分钟的睡眠周期。一个只睡了四个睡眠周期(即6小时)的人,通常比那些睡了8至10小时但未完成(最后)一个睡眠周期的人,感觉休息更充分。”
  于是这也解释了,即使睡足8小时后,我仍旧感到疲惫、晕乎乎的,又或者说睡了4个钟头时,是几乎不可能醒得过来的。作为普通人,我们几乎从小都被教育过,要“睡足8个小时”。尽管这样(的教育是错误的),仍然还是会有一些人感觉睡得比别人好。这是为什么呢,难道说上述理论有误?当然不是。真实情况是因为那些看上去并未完成最后一个睡眠周期,但是仍然感觉休息很充分的人,实际睡眠时间大都接近7个半小时,或者9个小时(还有一个原因,即每个人的睡眠周期时间长度亦有不同,这点在文章最后有说明)。
打盹是直接改善θ脑波的关键。
θ脑波,即超意识脑波。在清醒时,更多的θ脑波,就意味着拥有更高的创造性智力
  据说历史上那些“高产”的名人,绝大多数深谙此理并恪守之。列奥纳多·达芬奇、托马斯·杰斐逊和巴克明斯特·弗勒都一直使用这个的“技巧”,另外还有诸如尼科拉·特斯拉、托马斯·爱迪生、拿破仑和温斯顿·丘吉尔等聪明的“大脑”们更是同时利用打盹休息获益不少。
  另外打盹似乎还有长寿的好处,弗勒活了87岁,达芬奇到60多岁才挂点——他们都活了各自所处时代男性平均寿命的两倍!
  趣味知识:当大脑处于θ脑波状态时,脑细胞会重组钠钾比率。钠钾比与渗透作用有关,渗透作用即各种化学物质出入脑细胞的化学过程。在一个长期的 β脑波状态后,钠钾比就会失去平衡,这就是造成所谓的“精神疲劳”的主要䛮ŽŸ因。而一个短暂的θ脑波期(约5 至15分钟)便能够恢复正常的钠钾比,也就是说恢复精神状态。
人类原始天性更适合于多相睡眠,而非我们所习惯了的单相睡眠行为
  单相睡眠,相当于人们普遍的睡眠行为,即晚上睡觉,白天干活。
  多相睡眠,则是指在一天内分布存在多次的睡眠/清醒事件。如果一天睡眠计划中含一次午睡,那就是一个多相睡眠的例子了。
首先,自然界中几乎所有动物的行为都是多相复杂性的。而且多相睡眠是人类婴儿时期占主导地位的睡眠方式,只有在稍年长后,儿童才逐渐被断绝了午睡的概念。此外,当人们与外界环境隔绝联系后——保证无法从自然因素(如阳光),或人为暗示(如钟表、电视节目)来判断实际时间——将倾向于表现出更多的短暂睡眠行为,而非保持只“夜晚”才发生的单相睡眠。最后一点,小睡打盹——即短时间的睡眠——比起长时间的睡眠来说,在提神醒脑方面更为有效。
  但是很遗憾,我们似乎都已“忘了”这种符合生理自然天性的睡眠方式,维持着一尘不变的9点睡5点起的作息习惯。
从单相睡眠习惯转变到多相睡眠
并不是一件很困难的事——但是要循序渐进
  逐渐减少夜间睡眠,并且在傍晚小睡一会——关于小睡,你应该只选择两种时间长度:要么20分钟,要么90分钟(或者90分钟的倍数)。因为打盹20分钟能让你只进入睡眠的第一阶段,而不会跌进深度睡眠,才能在醒来后能够获得一定的休息效果。

w3wp.exe的内存及CPU占用不能及时释放

在IIS6下,经常出现w3wp.exe的内存及CPU占用不能及时释放,从而导致服务器响应速度很慢。

解决CPU占用过多:
1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。
2、设置应用程序池的CPU监视,不超过25%(服务器为4CPU),每分钟刷新,超过限制时关闭。

根据w3wp取得是哪一个应用程序池:
1、在任务管理器中增加显示pid字段。就可以看到占用内存或者cpu最高的进程pid
2、在命令提示符下运行iisapp -a。注意,第一次运行,会提示没有js支持,点击确定。然后再次运行就可以了。这样就可以看到pid对应的应用程序池。(iisapp实际上是存放在C:\windows\system32目录下的一个VBS脚本,全名为iisapp.vbs,如果你和我一样,也禁止了Vbs默认关联程序,那么就需要手动到该目录,先择打开方式,然后选“Microsoft (r) Windows Based Script Host”来执行,就可以得到PID与应用程序池的对应关系。)
3、到iis中察看该应用程序池对应的网站,就ok了,做出上面的内存或CPU方面的限制,或检查程序有无死循环之类的问题。

解决内存占用过多,可以做以下配置:
1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。
2、设置应用程序池的回收时间,默认为1720小时,可以根据情况修改。再设置当内存占用超过多少(如500M),就自动回收内存。

首先是对CPU的限制:在启用cpu监视后,我设置该应用程序池最大的cpu使用率为50%。设置刷新cpu时间为1分钟,设置操作为“关闭”。最大工作进程数设置为1。这个意思是,IIS刷新检测该独立池的CPU使用情况时间为1分钟,如果超过设置的cpu限制50%,就会发出关闭池的指令,要求池在指定的时间内关闭。如果池成功在这个时间内关闭,IIS会重启动一个新池,此段时间很短,一般不会有什么感觉,池就重新开启了,对于访问网站的人基本是不会有感觉的。但如果池没有在指定时间内关闭,IIS就会强行关闭它一个刷新CPU时间。在这个停止的时间内,网站无法访问,提示“Service Unavaliable”。

uploads/200805/20_021727_12_165731_w3wp1.jpg
uploads/200805/20_021734_12_165753_w3wp2.jpg
uploads/200805/20_021741_12_165810_w3wp3.jpg

http://www.cnblogs.com/hnboy/

IMAIL系统修改IP地址的处理方法

一、概述:
1、如果改变了本机的IP地址,则必须对IMail的原设置作相应的变更。
2、本文主要通过修改注册表来实现。
3、例如,本机原来的IP地址为“192.168.0.10”,在IMail中的其对应的邮件主机名为“mail.aaa.net”,别名为“aaa.net”,现在本机的IP地址改成了“192.168.0.1”。
二、具体操作:
1、打开注册表编辑器。选“开始→运行:regedit”。
2、找到IMail的域名存让地。选“HKEY_LOCAL_MACHINE→Software→Ipswitch→IMail→Domains”。
3、将旧的IP地址改成新的IP地址。选“192.168.0.10→右键→重命名”,然后改成新的IP地址“192.168.0.1”。
4、将主机对应的旧的IP地址改成对应到新的IP地址。选“mail.aaa.net→右边窗口→Address→双击”,再改成新的IP地址“192.168.0.1”。
5、进入“IMail Administrator”,把“SMTP”服务“Stop”再“Start”后,修改即生效。
三、说明:
1、不要忘了在DNS中修改,让域名指向新的IP地址!
2、在2K中,从修改IP地址到修改DNS及修改注册表和做后面的步骤,过程中均不需重新启动计算机。
3、如果进入注册表后新的IP地址和已不用了的旧IP地址共存,则需要删除旧的IP地址。

本文来自: 脚本之家(www.jb51.net) 详细出处参考:http://www.jb51.net/article/10769.htm

在面向对象的程序中,为什么parent要叫父类,而不是母类?

http://www.80diy.com/home/20021115/16/1179978.html

7 楼sojan()回复于 2002-11-15 16:41:45 得分 0 我老是在奇怪,干活的是类里面的函数,衍生出子类的是parent class.
而,现实生活中,又老是男人在干活,而女人是管生孩子。
这里怎么偏偏叫做父类,却不叫母类???
恩,留待大家探讨,探讨!Top

8 楼unicornoo(月亮雨)回复于 2002-11-15 17:13:15 得分 0 我想如果是你最早用这个名称的话,我们现在学的都应该叫母类.
就象我之为"我",而不是"你".呵呵,有点怪.:)Top

9 楼ixMind(路在何方)回复于 2002-11-15 17:51:17 得分 0 现在还是父系社会嘛!
其实英语一般都是用parent & child
中文翻译过来就成父子了Top

10 楼ixMind(路在何方)回复于 2002-11-15 17:51:55 得分 0 基类和派生类应该是更科学的说法T

愚蠢的跳线错误

下午起的很晚.. 睡到天黑才起床是一件很爽心的事情..

不过是被电话叫醒的. 上次给某人修机器竟然又出问题.

rush过去一看. 啥毛病没有.就是慢… 开机的时候那个启动声音竟然都卡

擦了内存,显卡等重要部位以后.依旧… P4 2.8 775结构的. 开机温度竟然72度.. 很不正常。

上次叫他们去换了风扇.. 现在开机49度….still很不正常…

仔细分析后发现.机器没事一直在乱读取. 而换机器的店(又是东川路交大对面的"顽固派" 强烈鄙视此店)也没搞好,还打算重装系统….

最后检查一切都没问题. 郁闷了.. 坐下来泡杯茶想了想…

此人机器上挂有两块ST3250824硬盘 一块为PATA 另一块为SATA

于是用HD Tune查看了一下读取速度.

SATA的很正常.60M/s

而PATA的只有2M/s. 并且很稳定…

问题找到了..

开机的时候.因为读系统分区需要做许多操作,其中包括读取启动声音和播放它. 这么多操作挤在一个2M/s的 IO里显然是不可行的.

于是开机箱检查.发现此硬盘接在唯一的一个IDE口上,并且上面还挂了个光驱. 根据此判断两者跳线应该有冲突。而这块板子是ASUS的.bios为AMI.其中带一个jumper什么什么的设置.

虽然跳线接错.还是可以以兼容模式(UMDA2)来运行.造成了这个问题(真隐蔽.乡下人修不来的估计要换东西了.)

解决方式当然是重设跳线.. 不过因为螺丝出问题..硬盘拉不出来..只好作罢. 转而把IDE改在单根线的master. 光驱用USB->IDE线来连接到主机.

问题排除..开机竟然只要读半圈.哦册。....cpu温度也降回了32度

在此还是要BS下那些无良的电脑维修铺....

业务素质不够还开修理铺,赶快回去抱孩子看电视吧.

本还以为是很复杂的问题.搞了半天这么简单..你们怎么就查不出来捏??害我也被误导而走了弯路.

别TM动不动只会重装系统..装完不行就叫嚣着换硬件...丫有点职业道德行不?

在国外,资料的价值远远大于硬盘本身,这就是SEAGATE为什么说硬盘是留下你的记忆了.重装是万不得已才做的最终选择.对症下药才是计算机维护的精髓所在.

两个D-link冲突…真是碰的到的~

早上很无聊的去上班… 接到个任务.

无线路由跨掉了。 需要立刻摆平..

well….过去一看. 笔记本没电 用的又是usb无线网卡..

随在一台台机上装上此网卡..并且把这个D-link的无线路由reset之…

一切都很顺利…

台机能连上无线路由器了… 然而当我打开192.168.0.1的时候傻眼了..

好端端的D-link 624A+竟然变成了不带无线的604….

想了一会没想出为什么.. 还以为是被人刷了版本… 但是再怎么刷版本.. 不带无线的604也不应该能连上TPlink的无线网卡.. 这实在太诡异了…

于是把这台路由带回家慢慢研究…

去师大后回家把无线网卡和路由打开… 按上午的顺序装好.. 一切都很顺利…. 真是奇怪了

考虑了良久..突然意识到了这个很BT的原因..

原来台机的电口连的也是一台D-link 并且型号是604
ip也是192.168.0.1 最最BT的是.. D-link初使或者Reset过以后… 密码是空. 而办公室的那台台机所在的路由密码就是空……..

所以综上所述我那时候连是连到台机所在的路由上去了 -_-|||

这么一想问题就解决了… 真是碰的到的… 哎… 超级粗心的网管啊…… 太不专业了…

完美干掉五笔

智能ABC为专业录入人员提供了一种快速的双打输入。在双打方式下输入一个汉字,只需要击键两次:奇次为声母,偶次为韵母。下面列出了双打输入的声母和韵母的定义表,可以看出其使用规则并不复杂,只要记住各个键的含义就行了。

有些汉字只有韵母,称为零声母音节,奇次输入“O”字母(O被定义为零声母),偶次键入韵母。虽然击键为两次,但是在屏幕上显示的仍然是一个汉字的拼音,如:儿 or。

双打复合声母和零声母定义表

uploads/200711/13_005443_sd.jpg

动态web开发语言项目 驳“ASP低能论”

  很多人错误地认为ASP是简单、低效的代名词,认为ASP是低能的,不足挂齿的,也很简单,一学就会,一琢磨就精通。

  有人讲ASP不安全,写ASP的程序的时候如果严格按照书写安全的代码的规范去写,写出来的程序也没有什么理由不安全。那些人说ASP不安全,好像PHP、JSP的程序就不会出现SQL Injection似的。

  有人讲ASP不高效,真的想要高效的话你可以结合COM,在Win32平台下COM的效率Java是永远追不上的。单纯讲速度有什么意义呢?Java的速度绝对算不上高,论速度的话好多技术方案的速度都比Java高,这一点学Java的人最清楚了,可是谁在乎过这一点了?Java的胜出绝对不是因为它的速度。抛开具体的应用环境单纯地讲速度是不理性的。

  有人讲ASP这个不能做,那个做不了,功能很局限。其实只要你明白Web的原理的话你就会明白,写ASP程序表面看是在玩一种脚本语言,但你指挥的是Web Server,有很多复杂的功能ASP也照样能完成的很好,有些功能ASP假如因为Web应用的先天局限做不了,你不要以为JSP、PHP就能做到。

  再提到功能。要说功能的话ASP+SQL Server肯定比PHP+MySQL强百倍,MySQL不支持事务处理,就这一条让PHP开发者吃了多少亏,没有视图,没有存储过程和触发器,没有数据库端的用户自定义函数,不能完全使用标准的SQL语法,这都是MySQL的缺点。可是PHP程序员在乎这一点了吗?没有!因为他们最在乎的是MySQL很快。(注意,是MySQL很快,不是PHP很快。同样,是MySQL不支持事务处理,而不是PHP的过错。)在面对PHP+MySQL的时候,人们就如此的理性。面对ASP的时候很多人就缺乏这种理性的认识。

  还有人提到MVC,是的我知道JSP可以把MVC发挥得很好。但是MVC这种编程思想不是Java或某种方案的专利,只要掌握了MVC的程序构架思想,你一样能写出这样的ASP程序、PHP程序。

  许多人单纯地做一些语言本身的比较,有什么意义呢?就好像你谈JSP的时候不谈JavaBeans,不谈EJB,那么你谈JSP有什么意义呢?同理谈ASP的时候你不谈COM,有什么意义呢?不要忘了ASP的核心就是COM。谈PHP的时候如果不谈它强大的平台——Unix/Linx,PHP照样什么也不是。

  不过有一点是可以肯定的,那就是:ASP的入门门槛最低。这按理说应该算ASP的优点,它秉承了微软技术一贯的作风——简单,入门门槛低。也正是因为这一点,使得大量的Web开发领域的新手能够很快地开发网站。但也正因为这一点,使许多掌握了ASP的一点皮毛知识的人自认为对ASP很懂,结果写出很垃圾的程序,让别人看了ASP的笑话。其实我接触过的一些JSP程序员也很垃圾,他们处理数据库操作的时候低级错误百出,但是因为他们是用Java开发的,所以给别人的感觉好像就高人一等。其实真的优秀的程序员如果明白了ASP的一些原理的话也能把ASP驾驭得很好。有些人玩不转ASP,你不能因此说这是ASP的问题。玩不转ASP的人大多是没有正确理解Web,而不是没有正确理解ASP中的语法。

  ASP的语法很简单,Java的语法也复杂不到哪里去,C++和C虽然复杂但是只要是一个智力正常的人也没有理由学不会。

  问题是语法本身很简单,但是Web很复杂。我们不是在这里浅尝辄止地玩弄一下某种脚本语言,我们是在做Web开发。

  Web开发虽然有不同的解决方案,但是基本的原理是相通的。如果你清楚Web端程序的一些运行原理,你就会明白你使用的开发技术的语法难度只不过是一种入门级的难度,真正的难度不在于你用什么技术方案去开发Web应用程序,真正的难度在于错综复杂的Web应用自身。

《驳“ASP低能论”》后记

作者:Xinsoft

我写的《驳“ASP低能论”》一文在ASP程序员社区引起了很多人浓厚的兴趣,大家的评论也比较活跃,从各个角度表达了在这个问题上的看法。

其实当时写那篇文章时,在论述时是带了一定的倾向性的。不过观点我认为还是没有错的。我驳斥了很多人认为ASP功能差的错误观点。但是我有意避开了ASP 在项目管理和开源项目、共享资源方面的危机。当然了,这些危机公正地说,不是ASP本身的问题,有很多是平台之争和程序员社群理念导致的问题。这方面我曾经和博客中国前PHP研发经理覃老师激烈讨论过,讨论到最后,哈哈,原来双方心中的想法是非常接近的。

有一篇很著名的文章,叫做《使你免于失业的10项技术》,文章里说只要你掌握了这10项技术(不一定要全会),你就能永远免于失业。真有这么神奇的技术吗?看看文章就明白了,里面说的都是一些非常重要但又非常基础的知识。而且你对这些技术的掌握不应该只限于会,不是浮在面上,而是扎下根去弄懂弄透彻。现在的许多新技术里面,你经常会发现那些基础知识的影子。

我不否认现在很多ASP程序员因为种种原因需要转型到PHP、J2EE中去,于此同时也有很多据哦程序员仍然坚守在ASP开发领域,更有很多程序员加入到这一队伍中来。我们看到,ASP在许多Web项目中仍然在散发着青春活力。

如果你是一个浮躁的人,即使掌握了J2EE或者.NET也一样会有重重危机。无论你在做哪方面的编程,请做一个扎实稳重的人。这就是我要表达的思想。我也曾经是一个肤浅的人,或许现在仍然是,但在这几年程序开发的日子里,我能够获得更多的能力,抛开外在因素不表,单说内在因素,无外乎是从肤浅逐渐向扎实稳重转变。

从追MM谈Java的23种设计模式

设计模式做为程序员的“内功心法”,越来越受到.net 社区的重视,这种变化是很可喜的,Java社区走在了我们的前面,但这种状况 也许有一天会发生改变。
  从追MM谈Java的23种设计模式

  1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯 德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory.

    工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点 是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。

  程序代码

  以下是引用片段:

以下是引用片段:
public class Factory{
      public String Boy = "boy" ;
       public String Girl = "girl" ;
      public People getPeople (String people){
        if (people.equals("boy")){
          return new Boy();
        }else if(people.equals("girl")){
          return new Girl();
         }
      }
    }

  2、BUILDER—MM最爱听的就是“我爱你”这句话了,见到不同地方的MM,要能够用她们的方言跟她说这句话哦,我有一个多种语言翻译 机,上面每种语言都有一个按键,见到MM我只要按对应的键,它就能够用相应的语言说出“我爱你”这句话了,国外的MM也可以轻松搞掂,这 就是我的“我爱你”builder。(这一定比美军在伊拉克用的翻译机好卖)

   建造模式:将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。建造模式使得 产品内部表象可以独立的变化,客户不必知道产品内部组成的细节。建造模式可以强制实行一种分步骤进行的建造过程。

  3、FACTORY METHOD—请MM去麦当劳吃汉堡,不同的MM有不同的口味,要每个都记住是一件烦人的事情,我一般采用Factory Method模 式,带着MM到服务员那儿,说“要一个汉堡”,具体要什么样的汉堡呢,让MM直接跟服务员说就行了。

    工厂方法模式:核心工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做,成为一个抽象工厂角色,仅负责给出 具体工厂类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节。

  4、PROTOTYPE—跟MM用QQ聊天,一定要说些深情的话语了,我搜集了好多肉麻的情话,需要时只要copy出来放到QQ里面就行了,这就是 我的情话prototype了。(100块钱一份,你要不要)

    原始模型模式:通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的方法创建出更多同类型的对象。 原始模型模式允许动态的增加或减少产品类,产品类不需要非得有任何事先确定的等级结构,原始模型模式适用于任何的等级结构。缺点是每 一个类都必须配备一个克隆方法。

  5、SINGLETON—俺有6个漂亮的老婆,她们的老公都是我,我就是我们家里的老公Sigleton,她们只要说道“老公”,都是指的同一个 人,那就是我(刚才做了个梦啦,哪有这么好的事)

    单例模式:单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例单例模式。单例模式只应在有真正的 “单一实例”的需求时才可使用。

  以下是引用片段:

以下是引用片段:
    public class SingLeton{
      private static SingLeton instance = new SingLeton();
      public static SingLeton getInstance(){
        return instance;
      }
    }

  6、ADAPTER—在朋友聚会上碰到了一个美女Sarah,从香港来的,可我不会说粤语,她不会说普通话,只好求助于我的朋友kent了,他 作为我和Sarah之间的Adapter,让我和Sarah可以相互交谈了(也不知道他会不会耍我)

    适配器(变压器)模式:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口原因不匹配而无法一起工作的两个类 能够一起工作。适配类可以根据参数返还一个合适的实例给客户端。

  7、BRIDGE—早上碰到MM,要说早上好,晚上碰到MM,要说晚上好;碰到MM穿了件新衣服,要说你的衣服好漂亮哦,碰到MM新做的发型, 要说你的头发好漂亮哦。不要问我“早上碰到MM新做了个发型怎么说”这种问题,自己用BRIDGE组合一下不就行了

  桥梁模式:将抽象化与实现化脱耦,使得二者可以独立的变化,也就是说将他们之间的强关联变成弱关联,也就是指在一个软件系统的 抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使两者可以独立的变化。

  8、COMPOSITE—Mary今天过生日。“我过生日,你要送我一件礼物。”“嗯,好吧,去商店,你自己挑。”“这件T恤挺漂亮,买,这 条裙子好看,买,这个包也不错,买。”“喂,买了三件了呀,我只答应送一件礼物的哦。”“什么呀,T恤加裙子加包包,正好配成一套呀, 小姐,麻烦你包起来。”“……”,MM都会用Composite模式了,你会了没有?

    合成模式:合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式就是一个处理对象的树结构的模式。合成 模式把部分与整体的关系用树结构表示出来。合成模式使得客户端把一个个单独的成分对象和由他们复合而成的合成对象同等看待。

  9、DECORATOR—Mary过完轮到Sarly过生日,还是不要叫她自己挑了,不然这个月伙食费肯定玩完,拿出我去年在华山顶上照的照 片, 在背面写上“最好的的礼物,就是爱你的Fita”,再到街上礼品店买了个像框(卖礼品的MM也很漂亮哦),再找隔壁搞美术设计的Mike设计了一 个漂亮的盒子装起来……,我们都是Decorator,最终都在修饰我这个人呀,怎么样,看懂了吗?

    装饰模式:装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案,提供比继承更多的灵活性。动态给一个 对象增加功能,这些功能可以再动态的撤消。增加由一些基本功能的排列组合而产生的非常大量的功能。

  10、FAÇADE—我有一个专业的Nikon相机,我就喜欢自己手动调光圈、快门,这样照出来的照片才专业,但MM可不懂这些,教了半天也 不会。幸好相机有Façade设计模式,把相机调整到自动档,只要对准目标按快门就行了,一切由相机自动调整,这样MM也可以用这个相机给我 拍张照片了。

    门面模式:外部与一个子系统的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用 。每一个子系统只有一个门面类,而且此门面类只有一个实例,也就是说它是一个单例模式。但整个系统可以有多个门面类。

  11、FLYWEIGHT—每天跟MM发短信,手指都累囮­»了,最近买了个新手机,可以把一些常用的句子存在手机里,要用的时候,直接拿出来 ,在前面加上MM的名字就可以发送了,再不用一个字一个字敲了。共享的句子就是Flyweight,MM的名字就是提取出来的外部特征,根据上下文 情况使用。

    享元模式:FLYWEIGHT在拳击比赛中指最轻量级。享元模式以共享的方式高效的支持大量的细粒度对象。享元模式能做到共享的关 键是区分内蕴状态和外蕴状态。内蕴状态存储在享元内部,不会随环境的改变而有所不同。外蕴状态是随环境的改变而改变的。外蕴状态不能 影响内蕴状态,它们是相互独立的。将可以共享的状态和不可以共享的状态从常规类中区分开来,将不可以共享的状态从类里剔除出去。客户 端不可以直接创建被共享的对象,而应当使用一个工厂对象负责创建被共享的对象。享元模式大幅度的降低内存中对象的数量。

  12、PROXY—跟MM在网上聊天,一开头总是“hi,你好”,“你从哪儿来呀?”“你多大了?”“身高多少呀?”这些话,真烦人,写个程序 做为我的Proxy吧,凡是接收到这些话都设置好了自动的回答,接收到其他的话时再通知我回答,怎么样,酷吧。

    代理模式:代理模式给某一个对象提供一个代理对象,并由代理对象控制对源对象的引用。代理就是一个人或一个机构代表另一个 人或者一个机构采取行动。某些情况下,客户不想或者不能够直接引用一个对象,代理对象可以在客户和目标对象直接起到中介的作用。客户 端分辨不出代理主题对象与真实主题对象。代理模式可以并不知道真正的被代理对象,而仅仅持有一个被代理对象的接口,这时候代理对象不 能够创建被代理对象,被代理对象必须有系统的其他角色代为创建并传入。

以下是引用片段:
    public interface FactoryProxy{
      public People createBoy();
       public People creteGirl();
    }

  13、CHAIN OF RESPONSIBLEITY—晚上去上英语课,为了好开溜坐到了最后一排,哇,前面坐了好几个漂亮的MM哎,找张纸条,写上 “Hi,可以做我的女朋友吗?如果不愿意请向前传”,纸条就一个接一个的传上去了,糟糕,传到第一排的MM把纸条传给老师了,听说是个老处 女呀,快跑!

    责任链模式:在责任链模式中,很多对象由每一个对象对其下家的引用而接

    起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。客户并不知道链上的哪一个对象最终处理这个请 求,系统可以在不影响客户端的情况下动态的重新组织链和分配责任。处理者有两个选择:承担责任或者把责任推给下家。一个请求可以最终 不被任何接收端对象所接受。

  14、COMMAND—俺有一个MM家里管得特别严,没法见面,只好借助于她弟弟在我们俩之间传送信息,她对我有什么指示,就写一张纸条 让她弟弟带给我。这不,她弟弟又传送过来一个COMMAND,为了感谢他,我请他吃了碗杂酱面,哪知道他说:“我同时给我姐姐三个男朋友送 COMMAND,就数你最小气,才请我吃面。”,

    命令模式:命令模式把一个请求或者操作封装到一个对象中。命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的 对象。命令模式允许请求的一方和发送的一方独立开来,使得请求的一方不必知道接收请求的一方的接口,更不必知道请求是怎么被接收,以 及操作是否执行,何时被执行以及是怎么被执行的。系统支持命令的撤消。

  15、INTERPRETER—俺有一个《泡MM真经》,上面有各种泡MM的攻略,比如说去吃西餐的步骤、去看电影的方法等等,跟MM约会时,只 要做一个Interpreter,照着上面的脚本执行就可以了。

    解释器模式:给定一个语言后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器。客户端可以使用这个解释器来 解释这个语言中的句子。解释器模式将描述怎样在有了一个简单的文法后,使用模式设计解释这些语句。在解释器模式里面提到的语言是指任 何解释器对象能够解释的任何组合。在解释器模式中需要定义一个代表文法的命令类的等级结构,也就是一系列的组合规则。每一个命令对象 都有一个解释方法,代表对命令对象的解释。命令对象的等级结构中的对象的任何排列组合都是一个语言。

  16、ITERATOR—我爱上了Mary,不顾一切的向她求婚。

    Mary:“想要我跟你结婚,得答应我的条件”

    我:“什么条件我都答应,你说吧”

    Mary:“我看上了那个一克拉的钻石”

    我:“我买,我买,还有吗?”

    Mary:“我看上了湖边的那栋别墅”

    我:“我买,我买,还有吗?”

    Mary:“我看上那辆法拉利跑车”

    我脑袋嗡的一声,坐在椅子上,一咬牙:“我买,我买,还有吗?”

    ……

    迭代子模式:迭代子模式可以顺序访问一个聚集中的元素而不必暴露聚集的内部表象。多个对象聚在一起形成的总体称之为聚集, 聚集对象是能够包容一组对象的容器对象。迭代子模式将迭代逻辑封装到一个独立的子对象中,从而与聚集本身隔开。迭代子模式简化了聚集 的界面。每一个聚集对象都可以有一个或一个以上的迭代子对象,每一个迭代子的迭代状态可以是彼此独立的。迭代算法可以独立于聚集角色 变化。

  17、MEDIATOR—四个MM打麻将,相互之间谁应该给谁多少钱算不清楚了,幸亏当时我在旁边,按照各自的筹码数算钱,赚了钱的从我这 里拿,赔了钱的也付给我,一切就OK啦,俺得到了四个MM的电话。

    调停者模式:调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用。从而使他们可以松散偶合。当某些 对象之间的作用发生改变时,不会立即影响其他的一些对象之间的作用。保证这些作用可以彼此独立的变化。调停者模式将多对多的相互作用 转化为一对多的相互作用。调停者模式将对象的行为和协作抽象化,把对象在小尺度的行为上与其他对象的相互作用分开处理。

  18、MEMENTO—同时跟几个MM聊天时,一定要记清楚刚才跟MM说了些什么话,不然MM发现了会不高兴的哦,幸亏我有个备忘录,刚才与 哪个MM说了什么话我都拷贝一份放到备忘录里面保存,这样可以随时察看以前的记录啦。

    备忘录模式:备忘录对象是一个用来存储另外一个对象内部状态的快照的对象。备忘录模式的用意是在不破坏封装的条件下,将一 个对象的状态捉住,并外部化,存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态。

  19、OBSERVER—想知道咱们公司最新MM情报吗?加入公司的MM情报邮件组就行了,tom负责搜集情报,他发现的新情报不用一个一个通知 我们,直接发布给邮件组,我们作为订阅者(观察者)就可以及时收到情报啦

    观察者模式:观察者模式定义了一种一队多的依赖䛮…³系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生 变化时,会通知所有观察者对象,使他们能够自动更新自己。

  20、STATE—跟MM交往时,一定要注意她的状态哦,在不同的状态时她的行为会有不同,比如你约她今天晚上去看电影,对你没兴趣的 MM就会说“有事情啦”,对你不讨厌但还没喜欢上的MM就会说“好啊,不过可以带上我同事么?”,已经喜欢上你的MM就会说“几点钟?看完电 影再去泡吧怎么样?”,当然你看电影过程中表现良好的话,也可以把MM的状态从不讨厌不喜欢变成喜欢哦。

    状态模式:状态模式允许一个对象在其内部状态改变的时候改变行为。这个对象看上去象是改变了它的类一样。状态模式把所研究 的对象的行为包装在不同的状态对象里,每一个状态对象都属于一个抽象状态类的一个子类。状态模式的意图是让一个对象在其内部状态改变 的时候,其行为也随之改变。状态模式需要对每一个系统可能取得的状态创立一个状态类的子类。当系统的状态变化时,系统便改变所选的子 类。

  21、STRATEGY—跟不同类型的MM约会,要用不同的策略,有的请电影比较好,有的则去吃小吃效果不错,有的去海边浪漫最合适,单目 的都是为了得到MM的芳心,我的追MM锦囊中有好多Strategy哦。

    策略模式:策略模式针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得 算法可以在不影响到客户端的情况下发生变化。策略模式把行为和环境分开。环境类负责维持和查询行为类,各种算法在具体的策略类中提供 。由于算法和环境独立开来,算法的增减,修改都不会影响到环境和客户端。

  22、TEMPLATE METHOD——看过《如何说服女生上床》这部经典文章吗?女生从认识到上床的不变的步骤分为巧遇、打破僵局、展开追求 、接吻、前戏、动手、爱抚、进去八大步骤(Template method),但每个步骤针对不同的情况,都有不一样的做法,这就要看你随机应变啦(具 体实现);

    模板方法模式:模板方法模式准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式实现,然后声明一些抽象方法来迫使 子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。先制定一个顶级逻辑框架,而将逻 辑的细节留给具体的子类去实现。

  23、VISITOR—情人节到了,要给每个MM送一束鲜花和一张卡片,可是每个MM送的花都要针对她个人的特点,每张卡片也要根据个人的 特点来挑,我一个人哪搞得清楚,还是找花店老板和礼品店老板做一下Visitor,让花店老板根据MM的特点选一束花,让礼品店老板也根据每个 人特点选一张卡,这样就轻松多了; 

    访问者模式:访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数 据结构可以保持不变。访问者模式适用于数据结构相对未定的系统,它把数据结构和作用于结构上的操作之间的耦合解脱开,使得操作集合可 以相对自由的演化。访问者模式使得增加新的操作变的很容易,就是增加一个新的访问者类。访问者模式将有关的行为集中到一个访问者对象 中,而不是分散到一个个的节点类中。当使用访问者模式时,要将尽可能多的对象浏览逻辑放在访问者类中,而不是放到它的子类中。访问者 模式可以跨过几个类的等级结构访问属于不同的等级结构的成员类。

常见asp错误

错误类型:
ADODB.Field (0x800A0BCD)
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。

原因:你在利用SQL查找数据库的记录时,查找结果为空,而且你没有对空记录的情况做出处理。
解决:1 如果你不相信查找结果为空,那你应该考虑你的SQL语句是否正确;2 如果确实有空的情况,那你应该添加if rs.eof then或者do while not rs.eof之类的语句,对eof的情况进行处理。

错误类型:
(0x80020009)
发生意外。

原因:也是在利用SQL查找数据库记录时,查找结果为空,而且你在后面的代码中调用了rs(aa)之类的记录
解决:要么同上,加上rs.eof的判断和处理,要么就是你的SQL语句有误,导致记录查不出来,也就无法在后来使用rs(aa)的记录了。

错误类型:
Active Server Pages, ASP 0126 (0x80004005)
找不到包含文件 'xxx.asp'。

原因:就如错误提示所说,不存在这个包含文件。
解决:如果你确定有这个文件,那么就是你的路径写错了,比如说其实他相对于网站根目录的路径应该是inc/xxx.asp,那么include里面就应该写inc/xxx.asp,而不仅仅是xxx.asp。附:include的写法是:<!–#include file=xxx.asp–>

错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询。

原因:这个在XP服务器上非常常见,属于服务器的配置问题,或者说是用户的权限问题。
解决:如果仅仅是在本机上调试出现的错误,则右键点击网站所在的文件夹,点击共享和安全…,在安全中点添加…,写入everyone,然后再使这个用户的权限为所有,即除了第一个外全部打勾,确定之后再刷新就可以用了。(注:如果找不到“安全”选项,则在任意一个文件夹下点击“工具”,然后是“文件夹选项”--“查看”,在“使用简单文件共享”一栏把勾去掉即可)

错误类型:
Microsoft VBScript 编译器错误 (0x800A0401)
语句未结束

原因:语法错误。
解决:按系统所提示的行来检查。如果提示的恰好是本页的最后一行,则很有可能是if语句忘记写end if啦,select语句忘记写end select啦,总之是需要end的地方没有end,导致服务器找不到语句的结尾,只好在最后一行显示错误。

错误类型:
Microsoft JET Database Engine (0x80040E10)
至少一个参数没有被指定值。

原因:在写SQL语句的时候,我们经常会调用一些参数,很可能这些参数中有一个没有被赋值。
解决:检查每一个参数的值是否真的传递过来了,很可能有些参数其实是,这样的参数去索引数据库当然是不行的。

错误类型:
Microsoft JET Database Engine (0x80040E37)
Microsoft Jet 数据库引擎找不到输入表或查询 'AA'。 确定它是否存在,以及它的名称的拼写是否正确。

原因:不存在这个表。
解决:应该是你写错了表名,或者连错了数据库?再仔细核对一下吧!

错误类型:
Microsoft VBScript 运行时错误 (0x800A000D)
类型不匹配: \'[string: ]\''

原因:是因为你的变量的类型是字符串型的,而你却当作数字或者其他类型来使用。
解决:比如你需要数字的变量用来计算i=i+1等数学运算,那么应该在变量上使用cint(变量名),强制转换为数字型,两个变量之间作比较也一定要是相同的类型,因此也需要转换,方法同上。

错误类型:
Microsoft JET Database Engine (0x80040E07)
标准表达式中数据类型不匹配。

原因:一般也是在写SQL语句时发生了错误,即把数字型和字符串型的变量混淆了。
解决:很好办,试一试把SQL中变量加了''的去掉单引号,或者把原先认为是数字的加上'',再查看效果。

错误类型:
Microsoft VBScript 运行是错误(0x800A01A8)
缺少对象:”

原因:很有可能是你没有对rs对象进行定义。
解决:别忘了写set rs=server.CreateObject(adodb.recordset),这样可以定义对象;或者直接不用这种写法,直接用conn.execute(SQL)这样会方便得多,也不用考虑对象问题。

错误类型:
Microsoft VBScript 运行时错误 (0x800A005E)
无效使用 Null: 'Replace'

原因:无效使用函数的情况也比较多见,包括Split等,这个道理也比较简单,就是因为你Replace的内容是空的。
解决:最好加一句IF检验一下你要replace的内容是否为空。

其实是有很多的,但可惜现在只能想到这么多,等待以后调试的时候再添加吧!