摘要: 在我们的程序中并不是所有的异常都被捕获,有些是因为我们不想捕获,因为我们认为那些异常没必要捕获 而有些是我们无法捕获的,因为我们不能确定它们会在什么地方出现,例如像nullpointerexception,classcastexception,indexoutofboundsexception这些runtimeexception。我们也许可以在所有它们有可能发生的地方去捕获它们,但这确实是很坏的......
摘要: 第四章 用例集 用例集模式是编写一组良好用例的质量标志。 4.1 sharedclearvision(愿景共识) 缺乏一个清晰的系统愿景可能会导致优柔寡断,涉众之间不能达成一致意见,并可能很快就使项目瘫痪。 原因: 时间压力可能会使人过早的开发系统,他们的工作建立在错误的基础之上,使其步入正轨的代价可能会非常昂贵; 构建人员有一种扩展系统范围的自然倾向; 涉众之间有一些相互冲突的愿景; 项目目标......
一个在程序中实现plugin机制的简单例子所有的plugin模块都应该实现一个moduleinterface接口: { 【程序编程相关:
使用DataReader、DataSet】 public interface moduleinterface 【推荐阅读:
J2ME学习笔记(三)-----学习MI】 } 【扩展信息:
C#插件构架实战】 ???public boolean handles(object key); 这意味着所有的模块都有一个handles方法,这个方法提供了一个挑选模块的机制,根据传入的对象识别模块,例如传入一个string,根据这个string判断这是不是一个适用的模块然后返回true或false. ? 每个模块都应该在jar文件的meta-inf目录下的元数据文件中描述自己.例如在一个module.mf中: module.name=module1 module.type=testinterface module.class=testmoduleclass module.type指明了这个模块的种类(testinterface是一个接口或一个类,指明这个模块是哪一种模块,例如它是过滤器.协议.界面或功能扩展等等),它必须implements了moduleinterface接口,module.class是该模块具体的类.在这个例子中module.type是应用程序的一部分,而module.class就是各个作为plugin的jar中的一部分了. ? modulescanner用于搜索一个或多个指定目录,查找所有模块的jar文件,并从jar文件中获得模块的描述信息,然后用模块的文件引用与描述信息构造一个modulespec对象,这样每一个modulespec对象就对应一个模块,modulescanner维护着一个列表,保存了所有的modulespec对象. import java.io.*; import java.net.*; import java.util.*; import java.util.zip.*; import java.util.jar.*; ? public class modulescanner { ? protected list modulespeclist = new arraylist(); ? ? public void scan(file[] paths) throws ioexception{ ????? for(int i=0; i ??????? scan(paths[i]); ????? } ? } ? ...
下一页 摘要:weblogin类是哥们儿以前做的一个模块中的模块,当时这个项目里要求身份验证的功能,而且后面还有好几个类似的项目,伙计就在想是不是把这个功能做成一个模块呢这样的话剩下每次都要做同样的事情,那多没劲啊,后来想想最主要是人懒吧,呵呵。 言归正传 当一个用户登录的时候,我们需要他填写登录名和密码,然后到后台数据库进行比对,如果有值则允许用户看到所请求的页面,如果没有,那就对不起了你是非法用户,out!......