摘要: 工厂方法模式: 定义了一个创建对象的接口,但是这个类不实际生成对象的实例,而是由其子类来进行实例化.工厂方法模式让类的实例化推迟到子类. 结构图: 解决的问题: 在软件系统中,我们会遇到这样一个问题,我们通过某种渠道实现了某个操作后,由于需求变化,或者其他一些原因,导致这个操作需要通过另外的渠道实现,从而导致我们不得不修改这个实现方法.如何封装这样一个易变的地方.工厂方法模式不能解决修改的... 阅读全文
posted @ 2009-04-28 15:35 Localhost 阅读(355) 评论(0) 推荐(0) 编辑
摘要: COMPUTE BY子句可以通过同一个select语句即查看明细行,又查看汇总行.可以计算子组的汇总值,也可以计算整个结果集的汇总值 COMPUTE 子句需要以下信息: 1. 可选的By关键字可按对一列计算指定的行聚合 2. 行聚合函数:sum,avg,min,max,count 3. 要对其执行行聚合函数的列 COMPUTE 所生成的汇总值在查询结果中显示为分离的结果集,包括COMPU... 阅读全文
posted @ 2009-04-28 10:47 Localhost 阅读(6164) 评论(2) 推荐(3) 编辑
摘要: 在生成包含小记和合计的报表时,ROLLUP运算符很有用,ROLLUP运算符生成的结果集类似于CUBE运算符所生成的结果集. ROLLUP和CUBE的区别在于: 1. cube生成的结果集显示了所选列的所有组合的聚合 2. rollup生成的结果集显示了所选列中值的某一个层次结构的聚合 示例: Sql: With rollup: select case when(grouping(se... 阅读全文
posted @ 2009-04-28 10:46 Localhost 阅读(9144) 评论(0) 推荐(1) 编辑
摘要: CUBE运算符生成的结果集是多维数据集,多维数据集是事实数据的扩展,事实数据即记录个别时间的数据,扩展建立在用户准备分析的列上,这些列被称为维,多维数据集是一个结果集,其中包含各纬度所有可能的交叉表格. CUBE运算符是在Select语句的group by子句中指定的,group by应指定维度列和关键字with cube,结果集将包括维度列中各值的所有可能组合. 示例1. Sql语句如下: se... 阅读全文
posted @ 2009-04-28 10:44 Localhost 阅读(7284) 评论(0) 推荐(2) 编辑
摘要: 装饰者模式: 动态的将责任附加到对象上.若要扩展功能,装饰者提供了比继承更有弹性的替代方案. 解决问题: 在软件系统中,我们会需要通过继承来对类进行功能扩展,从而导致子类越来越多. 我们常喝的茶,茶中可以添加牛奶,可以添加糖.要求返回关于这个茶的描述以及价格. 刚开始通过继承来设计时,怎么设计呢? 设计4个类,Tea,MilkTea,SugarTea,SugarMilkTea 目前涉及添... 阅读全文
posted @ 2009-04-28 10:38 Localhost 阅读(342) 评论(0) 推荐(0) 编辑