- 浏览: 29421 次
- 性别:
- 来自: 北京
文章列表
设计模式之Decorator(油漆工)
Decorator常被翻译成"装饰",我觉得翻译成"油漆工"更形象点,油漆工(decorator)是用来刷油漆的,那么被刷油漆的对象我们称decoratee.这两种实体在Decorator模式中是必须的.
Decorator定义:
动态给一个 ...
设计模式之Command
Command模式是最让我疑惑的一个模式,我在阅读了很多代码后,才感觉隐约掌握其大概原理,我认为理解设计模式最主要是掌握起原理构造,这样才对自己实际编程有指导作用.Command模式实际上不是个很具体,规定很多的模式,正是这个灵活性,让人有些confuse.
Command定义
不少Command模式的代码都是针对图形界面的,它实际就是菜单命令,我们在一个下拉菜单选择一个命令时,然后会执行一些动作.
将这些命令封装成在一个类中,然后用户(调用者)再对这个类进行操作,这就是Command模式,换句话说,本来用户(调用者)是直接调用这些命令的,如菜单上打开文档(调用者),就 ...
设计模式之Composite(组合)
Composite定义:
将对象以树形结构组织起来,以达成“部分-整体” 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性.
Composite比较容易理解,想到Composite就应该想到树形结构图。组合体内这些对象都有共同接口,当组合体一个对象的方法被调用执行时,Composite将遍历(Iterator)整个树形结构,寻找同样包含这个方法的对象并实现调用执行。可以用牵一动百来形容。
所以Composite模式使用到Iterator模式,和Chain of Responsibility模式类似。
Composite好处:
1.使客户端调 ...
设计模式之Chain of Responsibility(职责链)
Chain of Responsibility定义
Chain of Responsibility(CoR) 是用一系列类(classes)试图处理一个请求request,这些类之间是一个松散的耦合,唯一共同点是在他们之间传递request. 也就是说,来了一个请求,A类先 ...
设计模式之Builder
Builder模式定义:
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.
Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们.用 ...
设计模式之Bridge
Bridge定义 :
将抽象和行为划分开来,各自独立,但能动态的结合.
为什么使用?
通常,当一个抽象类或接口有多个具体实现(concrete subclass),这些concrete之间关系可能有以下两种:
1. 这多个具体实现之间恰好是并列的,如前面举例,打桩,有两个concrete class:方形桩和圆形桩;这两个形状上的桩是并列的,没有概念上的重复,那么我们只要使用继承就可以了.
2.实际应用上,常常有可能在这多个concrete class之间有概念上重叠.那么需要我们把抽象共同部分和行为共同部分各自独立开来,原来是准备放在一个接口里,现在需要设计两个 ...
设计模式之Adapter(适配器)
定义:
将两个不兼容的类纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和Adaptor(适配器)两个身份.
为何使用?
我们经常碰到要将两个没有关系的类组合在一起使用,第一解决方案是:修改各自 ...
MySQL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。
概述有意简化,更详细的说明应该考虑到有关特定列类型的附加信息,例如你能为其指定值的允许格式。由MySQL支持的列类 ...
在指定时间执行sql
CREATE EVENT e_test ON SCHEDULE AT TIMESTAMP '2010-09-15 22:35:00' DO update user SET V = 'ABC' WHERE id = 7;
前提是:
SET GLOBAL event_scheduler = 1;
其他用法
http://hzl7652.iteye.com/blog/614263
var valueObject;
valueObject=....
Object.prototype.toString.apply(valueObject)=='[object Array]' //数组
Object.prototype.toString.apply(valueObject)=='[object String]' //字符串
Object.prototype.toString.apply(valueObject)=='[object Function]' //方法函数
其他一次类推
昨日遇到用get传中文乱码问题。折腾一个多小时,两次encodeURIComponent解决,但后台接参数时需 java.net.URLDecode.decode()。经多方查询尝试,原来没有设置容器的解析编码。后在tomcat的server.xml里加上useBodyEncodingForURI="true",问题解决,一次encodeURIComponent即可。
表A
id name
1 abcb
2 abcbfbe
3 abbe
查询name字段含有b的个数
select (length(name)-length(replace(name,'b','')))/length('b') from A
结果
2
3
2
同理当我们需要按照某个字段里含指定字符串的个数排序时,把上面的公式放到order by后既可以
select * from A order by (length(name)-length(replace(name,'b','')))/length('b')
注:
就是运用数学公式的算法直接到sql里。可以 ...
表A内容:
id name
1 abc
2 efg
一、concat 在原有字段内容上追加内容
sql语句:
update A set name=concat( name, 'oooo') where id=1;
结果:
id name
1 abcooo
2 efg
二、replace 替换原有字段内容里的特定值
sql语句:
update A set name=replace( name, 'abc', 'def') where id=1;
结果:
id name
1 defooo
2 efg
将查询结果用指定分隔符连接起来返回
select group_concat( id separator ',') from tableName;
将结果集中所有列的id字段使用 ,号连接起来。
很有用。不用再while累加了。
不过不知性能和while哪个跟优,有时间测一下。
目前只在mysql上试过,其他没试过不知行不行。
有时候jquery ui的dialog就是单纯显示个框。不需要关闭和按钮什么的。但好像dialog没有右上角叉号的配置项(我没找到,有知道的大侠说一下)。所以只能通过以下方式解决。
jQuery(document).ready(function(){
var h=$('body').height()-10;
var w=$('body').width()-10;
$('#main').dialog({
autoOpen: true,
height: h,
width: w,
resizable: false,
draggable: false,
...