自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (1)
  • 收藏
  • 关注

原创 java 设计模式学习笔记(12) - 观察者模式

<br />观察者模式 :<br />    定义了一种一对多的依赖关系,让多个观察者对象同时监听某个主题对象,这个主题对象在状态发生变化时会通知所有观察者对象,使他们能够自动更新自己。<br />    根据概念,我们知道这个模式由 多个观察者,一个被观察对象组成。观察者需要将到被观察对象那里去注册自己,或者说被观察对象保存着多个观察者得引用。一旦被观察对象的状态发生了变化,那么它会通知在它这里注册了的所有观察者,而这些观察者一收到消息就会自动进行相应的操作。 <br />    观察者模式核心之处在于观

2011-04-24 11:35:00 602

原创 java 设计模式 学习笔记(11) 建造者模式

<br />建造者模式:<br />    将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。<br />建造者模式将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。<br />   使用建造者模式,用户就只需指定需要建造的类型就可以得到它们,而具体建造的过程和细节就不需要知道了。通常建造者模式用于创建一些复杂的对象,这些对象的内部结构和建造顺序通常是固定的,或者说方法的执行顺序固定不变,但方法的内容经常会有复杂的变化。<br />

2011-04-23 20:30:00 1115

原创 java 设计模式 学习笔记(10) 外观模式

外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。有一个面向客户代码的外观类Facade,该外观类向客户代码提供了一组接口,每一接口可能封装了子系统的一系列操作,但是一系列的操作对客户代码是隐藏的,而对于外观类则是开放的。通俗的说:假设客户代码为了实现某个功能,需要从多个子系统中调用多个方法。如果直接调用,那么将极大增强了代码间的耦合性,同时也为代码的后期维护埋下了很大的隐患,加大了后期维护的成本。这个时候,使用外观类,该外观类保存了需要使用到的

2011-04-23 18:33:00 622

原创 java 设计模式 学习笔记(9) 模板方法模式

<br />模板方法模式:<br />定义一个操作中算法的骨架,将这个骨架中包含的其他方法延迟到子类去实现。模板方法模式使得子类可以在不改变一个算法的结构前提下重新定义该算法中的某些步骤的实现。<br />模板方法模式的用处  :<br />        当不变的和可变的行为在子类的方法实现中混合成一起的时候,不变的行为就会在多个子类中重复出现。通过模板方法模式可以将这些不变的行为搬移到父类中去。<br />       简单的理解就是:父类定义了一套行为流程,并且实现了这套行为流程中的某些公共的行为,而

2011-04-23 16:31:00 902

原创 java 设计模式学习笔记(8) - 原型模式

<br />原型模式:  用原型实例指定传经对象的种类,并且通过拷贝这些原型创建新的对象。其实就是从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节。<br />    根据上一篇 《浅拷贝和深拷贝》的内容,我们知道,浅拷贝后原对象(A)和复制出来的对象(B)中对其他对象的引用都是相同的。如果复制出来的对象(B)改变了其保存的其他对象(C)的引用内容,那么这个原对象(A)对保存的其他对象(C)也会跟着改变。<br />    使用原型模式的目的,就是希望能够复制出多个对象,并且每个对象都是独立

2011-04-17 12:55:00 708

原创 java 设计模式学习笔记(7) - 浅拷贝和深拷贝

在JAVA 语言中,拷贝按拷贝结果分为两种:浅拷贝,深拷贝浅拷贝 :“被克隆对象的所有变量都含有与原来的对象相同的值,而它所有的对其他对象的引用都仍然指向原来的对象。换一种说法就是浅克隆仅仅克隆所考虑的对象,而不克隆它所引用的对象。”  深拷贝: “被克隆对象的所有变量都含有与原来的对象相同的值,但它所有的对其他对象的引用不再是原有的,而这是指向被复制过的新对象。换言之,深复制把要复制的对象的所有引用的对象都复制了一遍,这种叫做间接复制。”   quote  :http://sakyone.iteye.co

2011-04-16 21:28:00 684

原创 java 设计模式 学习笔记(6) 代理模式

代理模式:为其他对象提供一种代理以提供对这个对象的的访问。代理模式的应用范围比较广泛: 1.远程代理,为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实 2. 虚拟代理, 根据需要创建开销很大的对象,通过虚拟代理来存放实例化需要很长时间的真实对象 3. 安全代理,用来控制真实对象访问时的权限 4. 智能指引,当调用真实的对象时,代理处理另外一些事。现实生活中,就存在很多的代理例子。最普遍的就属日常生活中的商品购买,工厂大批量的生产商品,但一般都不会将单独出售某件或少数几件给

2011-04-16 14:40:00 467

原创 java 设计模式 学习笔记(5) 装饰模式

<br />装饰模式:   动态地给一个对象添加额外的职责。就增加功能来说,装饰模式比增加子类更加灵活。<br /> <br />我承认我看了《大话设计模式》 中的装饰模式,花了一个小时才消化掉,为此,我改写了《大话设计模式》 的例子以便加深印象。<br />在这里,我简单的以给某个人类穿衣服裤子等行为来表示对一个对象的装饰动作。<br />1. 根据面向接口编程的原则,建立一个 Humen 类,这个类是一个抽象类,并有一个抽象方法 dress()   ,是人类都要穿衣服吧。<br /> <br />/**

2011-04-16 12:13:00 726

原创 java 设计模式 学习笔记(4) 策略模式

策略模式是一种定义一系列算法的方法,从概念上来看,所有的这些方法完成的都是相同的工作,只是实现不同。 它可以以相同的方式调用所有算法,减少了各种算法类和使用算法的类之间的耦合。为什么要使用策略模式中的Context 类?对于前面的三种工厂设计模式,如果用工厂来创建实例,并通过实例调用给实例类中的方法来实现功能。而使用了Context类,通过将 具体的算法类  注入到Context 构造函数中,并在Context 自身的函数中来调用 注入到构造函数中的 具体算法类的特定方法。也就是说,用户代码只是选择了一个具

2011-04-15 21:00:00 509

原创 java 设计模式 学习笔记(3) 抽象工厂模式

<br />抽象工厂模式 : 提供一个创建一系列相关的或相互依赖对象的接口,而无需指定它们具体的类。<br /> <br /> 1. 在这个设计模式中,有抽象工厂接口, AbstracFactory Class  。这个接口有两个方法,分别用来创建抽象 Animal 和 抽象 Fruit 。也就是说,它会分别创建Animal 和 Fruit ,但具体不确定到底是 创建 Animal 中的 Bear 还是 Cat ,创建 Fruit 中的 Banana 还是 Apple。<br />public interf

2011-04-14 21:33:00 661

原创 java 设计模式 学习笔记 (2) - 工厂方法模式

工厂方法模式:    定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。具体实现方式如下:       1.  建立一个 Animal  抽象类 ,该类有一个 shout()  方法,打印出 调用shout 方法的对象类。           为什么要建立一个Animal抽象类?            答:  声明为抽象的作用就是为了表示 Animal 是不能实例化的,要实例化就去实例化猫狗之类的具体动物。            为什么非要一个Animal 抽象类,

2011-04-12 21:18:00 501

原创 java 设计模式 学习笔记(1) - 简单工厂模式

<br />简单工厂模式是java 设计模式里头比较简单基础的一种,其特点是根据用户不同的参数而返回不同的实例。<br />使用简单工厂的好处在于在今后可能的系统扩展或修改时带来更大的可扩展行和更少的代码修改。<br />根据《重构》 中的介绍,尽量减少 生成新的对象的代码。<br /><br /><br />在这里,我自己写了一个简单工厂的小例子:<br /> <br />/** * 这是一个动物类,有一个所有动物都有的方法 shout * @author liaogang.pt */ pu

2011-04-11 20:47:00 521

原创 优化mysql 的 limit offset

<br /><br /> limit 和offset  通常会和order by 一起使用。索引对排序比较有帮助,<br />如果没有索引就需要大量文件排序,因此在order by 列一定要添加索引。<br /><br /><br />     如果有:<br />     select * from mytable order by sp_id limit 100000,10  <br />  类似的sql语句出现,那么这个操作的代价非常高,会扫描 100010 行数据。<br />    这个时候可以改

2011-04-10 20:33:00 614

原创 Mysql benchmark 的使用

<br />  1.  select   语句来查看sql 语句执行的时间  <br />       我一直使用mysql 图形化工具来操作数据库,查看某条SQL 语句执行的时间也是通过图形化工具来查看。前两天遇到了一个问题,就是       怎   么样查看一个mysql执行一个sql 表达式所需的时间,也就是执行  where 条件的时间,通过 例如我想知道 <br />   <br />        to_days(MYDATE) - to_days(now()) <1   执行一次的时间   其

2011-04-09 20:41:00 2348

javascript页面表格实现不刷新排序的例子

页面表格实现不刷新排序,通过javascript 来实现的。例子很简单,希望能有所帮助

2011-05-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除