09 2011 档案
摘要:很多同学和园友都遇到过sql注入的,其中大部分都是代码的不严谨造成的,都是犯过很多错误才学会认真起来。但是如果是让你接手一个二等残废的网站,并让你在上面改版,而且不能推翻式改版,只能逐步替换旧的程序,那么你会非常痛苦,例如我遇到的问题:问题1. 老板对你说,以前刚做完网站好好了,没有出现木马,怎么你来了,就会出现木马,先别说了,赶紧解决问题,我彻底无语,但是如果争吵,其实证明你和老板一样无知,拿出证据和事实分析来让公司其他稍微懂技术的一起来证明,公司网站被挂马不是你来了的错。如是我通过网站目录仔...
阅读全文
摘要:自己平时用得比较多tab功能,网上有很强大的tab功能,但是很多时候太过于复杂,所以自己写了一个最简单的jquery插件,代码如下,就不解释了。/* * jqpressToos1.0 * * Copyright (c) 2011 yepeng * Dual licensed under the MIT (MIT-LICENSE.txt) * and GPL (GPL-LICENSE.txt) licenses. * */$.fn.extend({//插件名称:Tab选项卡 jqpressTab: function(options) { //参数和默认值 va...
阅读全文
摘要:小言:这不是设计模式讲解型博文,以下将设计模式的概述、类图,代码示例,总结分每篇博文单独展示,现将其归类,便于以后翻阅,设计模式也不是一两个月学完了就能完全领悟,它只告诉我们几个解决问题的思路和方法,将具体问题抽象为模型的思想,武功也是,套路需要学,但是基本功(如马步、力量,毅力,抗打击能力)绝对不可或缺,在学习设计模式的同时更需要看看数据结构和算法方面的基础东东。设计模式不是银弹,如果非要用降龙十八掌对付一只蚂蚁不是一个好想法。本人也是学艺不精,整理当中难免有错误,希望在大家的批评指正,共同进步。一、创建型模式 ...
阅读全文
摘要:概述: 访问者模式(Visitor),表示作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素新的操作。适用场合: 1.一个对象结构包含很多类对象,他们有不同的接口,而你想对这些对象实施一些依赖于其具体类的操作。2.需要对一个对象中的对象进行很多不同的并且不相关的操作,而你想避免让这些操作‘污染’这些对象的类。 visitor使得你可以将相关的操作集中起来定义在一个类...
阅读全文
摘要:概述: 解释器模式(interpreter):给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。适用场合: 当一个语言需要解释执行,并且你可以将该语句中的句子表示为一个抽象语法树时,可使用解释器模式。而当存在以下情况时该模式效果最好。1.该文法简单对于复杂的文法,文法的类层次变得庞大而无法管理。2.效率不是一个关键问题,最高效的解释器通常不是通过直接解析语法...
阅读全文
摘要:概述: 享元模式(Flyweight):运用共享技术有效地支持大量细粒度的对象。适用场合: 1.一个应用程序使用了大量的对象。2.完全由大量的对象,造成很大的存储开销。3.对象的大多数状态都可变为外部状态。4.如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象。5.应用程序不依赖于对象标识,由于Flyweight对象可以被共享,对于概念上明显有别的对象,标识测试将返回真值。类图: ...
阅读全文
摘要:概述: 用中介对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以对立地改变他们之间的交互。适用场合: 1.一组对象以定义良好但是复杂的方式进行通信。产生的相互依赖关系结构混乱且难以理解。2.一个对象引用很多其他对象并直接与这些对象通信,导致难以复用该对象。3.想定制一个分部在多个类中的行为,而又不想生成太多的子类。类图: ...
阅读全文
摘要:概述: 使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链。并沿着这条链传递该请求,直到有一个对象处理它为止。这一模式的想法是,给多个对象处理一个请求的机会,从而解耦发送者和接受者。适用场合: 1.有多个的对象可以处理一个请求,哪个对象处理该请求运行时刻自动确定。2.你想在不明确指定接受者的情况下,向多个对象中的一个提交请求。3.处理一个请求的对象集合应被动态指...
阅读全文
摘要:概述: 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。适用场合: 1.抽象出待执行的动作以参数化某对象。2.在不同的时刻指定、排列和执行请求。3.支持取消操作。4.支持修改日志,这样当系统崩溃时,这些修改可以被重做一遍。5.用构建在原语操作上的高层操作构造一个系统。类图: ...
阅读全文
摘要:概述: 将抽象部分与它的实现部分分离,使他们都可以独立的变化。使用场合: 1.你不希望在抽象和它的实现部分有一个固定的绑定关系。例如这种情况可能是因为程序在运行时刻部分应用可以被选择或者切换。2.类的抽象以及它的实现都可以通过生成子类的方法加以扩充。3.对一个抽象的实现部分的修改应对客户不产生影响,即客户端的代码不必重新编译。4.你想在多个对象之间共享实现,但是同时要求客户并不知道这一点类图: ...
阅读全文