03 2013 档案

摘要:装饰者模式:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。point1:对扩展开放,对修改封闭point2:继承引起的类型爆炸。参考:java I/O缺点:太过复杂,虽然很好的解决了扩展的问题,但是仍然会使api编写人员头昏脑涨。JAVA的IO就是最好的参考! 阅读全文
posted @ 2013-03-09 12:48 RichardHu 阅读(117) 评论(0) 推荐(0) 编辑
摘要:观察者模式:定义了对象之间一对多的依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会受到通知并自动更新。(出版者+订阅者=观察者模式)point1:一对多关系point2:松耦合为什么要有观察者模式?观察者模式适合于这样一种情况,现在有某一类主题信息,对于它有很多的观察者,观察者关注主题的信息,同时观察者希望主题对象可以再事实更新的时候同步把更新的信息“推”送到观察者哪里,当然,为了更灵活,观察者也希望可以主动的“拉取”更新的信息,因为对于种类繁多的观察者,并不是所有的人都需要更新全部的信息,因为很有可能,更新的一大部分信息里,某些观察者是不关注的。用类图定义观察者模式使用Eclipse 阅读全文
posted @ 2013-03-05 10:09 RichardHu 阅读(284) 评论(1) 推荐(0) 编辑
摘要:策略模式:定义了算法族,分别封装起来,让他们之间可以相互替换,次模式让算法的 变化独立于使用算法的客户。point1:针对接口编程,而不是针对实现编程point2:多用组合,少用继承point3:使用委托“delegate”简单需求定义:这是一个RPG游戏,游戏中提供多种人物角色供你选择,每个角色都有自己特定的武器。角色:骑士(长矛),剑客(长剑),刺客(匕首)使用设计模式:定义基础角色类: 1 package com.pattern.strategypattern.character; 2 3 import com.pattern.strategypattern.behavior.Figh. 阅读全文
posted @ 2013-03-04 09:52 RichardHu 阅读(156) 评论(0) 推荐(0) 编辑
摘要:在本科我们做项目的时候总是会碰到这样的一种需求:当前用户查看各自相册列表,相册显示10张照片(为了方便讨论如何优化,这里只讨论当前一个用户的一个相册),在相片的下方显示该相片的评论数。好了,这种类似需求颇为常见,大部分的人都会采用下面这种非常合理的做法。分两步进行:(1)select photo_id,photo_title,photo_url fromphoto whereuser_id = ? limit 10 选出当前用户第一页相册信息(2)对于(1)的结果,对于photo_id进行循环操作 select count(*) from photo_comment where photo_i 阅读全文
posted @ 2013-03-03 09:06 RichardHu 阅读(182) 评论(0) 推荐(0) 编辑
摘要:Mysql的系统架构可以简单的分成两个层次(1)sql Layer(2)Storage Engine Layer对于Mysql我们知道他支持多种存储引擎,常见的哟MyISAM,InnoDB等等我们来简单看一下Sql Layer中都有那些模块,先简单的介绍一下各个模块,再通过一个流程图来简单说明一下mysql系统架构下各个模块是如何协同工作的1.初始化模块buffer,cache,系统变量2.核心api数据结构,特殊算法,str处理,数字处理,文件I/O,格式化输出,MEM cntl3.网络交互模块底层网络交互模块抽象出网络底层数据的发送和接收所需要的api,被其他模块调用4.Client&am 阅读全文
posted @ 2013-03-01 10:46 RichardHu 阅读(303) 评论(0) 推荐(0) 编辑