第10章

 

 

10 章:

有两条加以修改的理由

 每次修改Swing代码时,更新版本号无疑;但反过来未必可行,也就是还有其他理由会导致修改其跟踪的版本信息。

 

 认识到并创建出更好的抽象,将三个处理版本信息的 SuperDashboard 方法拆解到名为 Version 的类中。

   public class Version {

public int getMajorVersionNmber()

public int getMinorVersionNumber()

public int getBuildNumber();

   }

 

  分而治之,在程序中的重要程度。

  如果一个类中的每个变量都被每个方法所使用,则具有最大的内聚性

 

 

  意味着类中的方法和变量互相依赖,互相结合成一个逻辑整体

  

  public class Stack {

    private int topOfStack = 0;

    List<integer> elements = new LInkedList<integer>();

 

    public int size() {

return topOfStack;

    }

 

    pubic ovid push(int element) {

        topOfStack++;

elements.add(element);

    }

 

    public int pop() throws PoppedWhenEmpty {

        if (topOfStack == 0)

  throw new PoppedWhenEmpty();

int element - elements.get(--topOfStack);

elements.remove(topOfStack);

return element;

    }

 }

 

 

 操持函数和参数列表短小的策略【2】,有时会导致为一组子集方法所用的实体变量数据增加。出现这种情况时,往往意味着至少有一个类要从大类挣扎出来。你应当尝试将这些变量和方法抓到两个或多个类中,让新的类更为内聚。

  较大的函数切割成小函数,上面结论:会导致更多的类出现。想要拆出来的使用了4个变量,都作为参数传递到新函数中去呢?

  只要将4个变量提升为类的实体变量,无需传递就可以拆解代码。

  然后读“可异这也意味着类丧失了内聚性,因为堆积了越来越多只为允许少量函数芍了而存在的实体变量”,这样一想,原来不是分出来一个类,所谓提升为类的实体变量,就是变为全局的变量。

  有些函数想要共享某些变量,为什么不让它们拥有自己的类呢,录类丧失了内聚性,就拆分它。

  所以,将函数拆为许多小函数,往往也是将类拆分为多个小类的时机。程序会更加有组织,也会拥有更为透明的结构。

 

  为了说明,

  

  

 

 

 

 

猜你喜欢

转载自liudingning.iteye.com/blog/2114597