敏捷开发的必要技巧:处理不合适的依赖
2008-01-05 08:28:57 来源:WEB开发网核心提示: 摘要: 要判定一个代码是不是包含了“不合适的依靠”,共有四个方法:1.看代码:有没有互相依靠?2.认真想想:它真正需要的是什么?3
摘要:
要判定一个代码是不是包含了“不合适的依靠”,共有四个方法:1.看代码:有没有互相依靠?2.认真想想:它真正需要的是什么?3.推测一下:它在以后的系统中可以重用吗?4.到要重用的时候就知道了:现在我要重用这个类,能不能重用?
假如现在有一个类Parent,里面有个属性的类型是Child,add的方法里面还有个参数的类型是Girl:
class Parent{
Child child;
void add(Girl girl){
...
}
}
因为上面Parent里面用到了Child跟Girl这两个类,我们就说,Parent引用了类Child跟类Girl。现在的问题是,假如Child这个类或者Girl这个类编译不过的话,那么Parent这个类也编译不了了。也就是说,Parent依靠于Child跟Girl。这章讲述的,就是因为一些类的依靠造成的无法重用的问题。
示例
这是一个处理Zip的程序。用户可以在主窗口中先输入要生成的目标zip的路径,比如c:\f.zip ,然后输入他想压缩到这个zip的源文件的路径,比如
c:\f2.doc和c:\f2.doc 。然后这个程序就会开始压缩f1.doc和f2.doc,生成f.zip文件。在压缩各个源文件的时候,主窗口下的状态栏都要显示相关的信息。比如,在压缩c:\f2.doc的时候,状态栏就显示"正在压缩 c:\f2.zip"。
目前的代码就是
class ZipMainFrame extends Frame {
StatusBar sb;
void makeZip() {
String zipFilePath;
String srcFilePaths[];
//根据UI上给zipFilePath和srcFilePaths赋值
...
ZipEngine ze = new ZipEngine();
ze.makeZip(zipFilePath, srcFilePaths, this);
}
void setStatusBarText(String statusText) {
sb.setText(statusText);
}
}
class ZipEngine {
void makeZip(String zipFilePath, String srcFilePaths[], ZipMainFrame f) {
//在该路径上创建zip文件
...
for (int i = 0; i < srcFilePaths.length; i++) {
//将srcFilePaths[i]的文件加到压缩包中
...
f.setStatusBarText("Zipping "+srcFilePaths[i]);
}
}
}
- ››开发Android 日历教程
- ››开发学院总结 Win 8实用技巧大全
- ››开发学院原创教程:把win8的IE10放桌面上方法(非...
- ››开发者眼中的Windows Phone和Android
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››开发一个自己的HTML在线编辑器(一)
- ››开发一个自己的HTML在线编辑器(二)
- ››开发者在App Store上赚的钱比在Android Market上多...
- ››开发者应深入学习的10个Android开源应用项目
- ››开发移动 Web Ajax 应用
- ››开发者眼中的iPhone与Android
- ››开发者或想使用的10个Android2.2新特性
更多精彩
赞助商链接