继续设计模式~ 模版方法模式
老套路,先看下定义:定义了一个算法的骨架,而将一些步骤延迟到子类中,模版方法使得子类可以在不改变算法结构的情况下,重新定义算法的步骤。
简单看下定义,模版方法定义了一个算法的步骤,并且允许子类为一个或多个步骤提供实现。定义还算清晰,下面来个例子展示下本公司的上班情况(纯属娱乐,如有雷同,请对号入座)。简单描述一下:本公司有程序猿、测试、HR、项目经理等人,下面使用...
分类:
其他好文 时间:
2014-05-22 12:15:55
阅读次数:
262
非洲小孩
时间限制:1000 ms | 内存限制:65535 KB
难度:2
描述家住非洲的小孩,都很黑。为什么呢?
第一,他们地处热带,太阳辐射严重。
第二,他们不经常洗澡。(常年缺水,怎么洗澡。)
现在,在一个非洲部落里,他们只有一个地方洗澡,并且,洗澡时间很短,瞬间有木有!!(这也是没有的办法,缺水啊!!)
每个小孩有一个时间段能够洗澡。并且,他们是可以...
分类:
其他好文 时间:
2014-05-22 11:16:28
阅读次数:
272
简介
此文档描述了一个超级用户如何在安全的方式下以另一用户的名义提交作业或访问hdfs。
Use Case
下一部分描述的的代码示例对此用户用例是可用的。
一个用户名为'super'的超级用户想要以另一用户joe的名义提交作业或访问hdfs。超级用户有kerberos证书但是用户joe并没有。任务要求以用户joe的角色运行并且namenode上的文件访问也需要由joe完成。需要用户...
分类:
其他好文 时间:
2014-05-22 10:40:41
阅读次数:
255
曾几何时,只是一直在调用库函数fork,只知道它创建一个子进程,并且子进程返回值是0,父进程返回值是子进程pid。但是一直没有深究内核代码,今天终于使用gdb调试了一把fork的内核代码,下面就让我们一探究竟吧。
1.创建进程的本质是什么?
根据目前理解,其实就是构造了PCB,这个PCB会唯一标示一个进程的存在,并且会构建子进程的页目录和页表等等。
2.为什么fork()调用会有2个返回值,...
分类:
系统相关 时间:
2014-05-22 10:40:01
阅读次数:
404
在类中使用typedef, 最好将其放在类定义的头部。
如下例:
{CSDN:CODE:353555}
在类定义体中声明的LENGTH的typedef被当做重复定义,导致编译失败。
并且类中的成员函数均绑定到全局的typedef。
当你的类定义体中使用了typedef,请尽量放在类定义的首部。那么类中对于该typedef的引用将会是正确且一致的。
{...
分类:
编程语言 时间:
2014-05-20 17:13:03
阅读次数:
382
生成器设计模式是针对实例化复杂对象的设计的。
定义:生成器模式也称为建造者模式。生成器模式的意图在于将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示(GoF)。在软件设计中,有时候面临着一个非常复杂的对象的创建工作。这个复杂的对象通常可以分成几个较小的部分,由各个子对象组合出这个复杂对象的过程相对来说比较稳定,但是子对象的创建过程各不相同并且可能面临变化。根据OOD中的OCP...
分类:
其他好文 时间:
2014-05-20 16:33:41
阅读次数:
272
从oracle 10g开始,oracle引入了段顾问(Segment Advisor),用于检查数据库中是否有与存储空间相关的建议,并且从10gR2开始,oracle自动调度并运行一个段顾问作业,定时分析数据库中的段,并将分析结果放在内部表中。但是很多情况下,作为DBA,我们都会将oracle自带的各种调度作业(统计信息收集、段顾问、SQL顾问等等)禁用,进而通过手工进行控制执行类似作业(或者为了节省资源)。因此很多情况下,我们都没有用到段顾问这个非常实用的功能。这篇文章就是讲述在表对象和表空间级别通过手工...
分类:
数据库 时间:
2014-05-20 15:17:18
阅读次数:
542
通常修改包名时会造成R文件错误,并且有时带有原因不明的Manifest文件中多处文本混乱。
所以,将目前认为最为简洁方便的修改包名流程记录如下:
假设我们目前的包名为com.pepper.util,我们将要把包名修改为com.pp.util
1、点击项目右击——>Android Tools——>rename application package:修改好包名——>点击OK——>点击finis...
分类:
移动开发 时间:
2014-05-20 15:16:01
阅读次数:
469
IOS 中获取系统版本,比较简单([[UIDevice
currentDevice] systemVersion]);
看到网络上很多转化系统字符串到float 的方法,都是使用 [[[UIDevice currentDevice] systemVersion] floatValue];
但是这个方法我遇到一个问题,就是如果系统版本是7.1.1 的时候,转化生成的float 有问题,我...
分类:
移动开发 时间:
2014-05-20 13:59:59
阅读次数:
282
题目如下:思路分析:写出完整的程序: 1 /* 2 问题描述: 3
有n根棍子,棍子i的长度为ai。想要从中选出3根棍子组成周长尽可能长的三角形。请输 4 出最大的周长,若无法组成三角形则输出0。 5 */ 6 7
#include 8 #include 9 #defi...
分类:
编程语言 时间:
2014-05-20 09:31:21
阅读次数:
940