首页 > 学院 > 开发设计 > 正文

敏捷开发的必要技巧:处理不合适的依赖

2019-11-18 15:30:56
字体:
来源:转载
供稿:网友

    摘要:

    要判定一个代码是不是包含了“不合适的依靠”,共有四个方法: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]); 
           }
       }
    }



发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表