Java面向对象设计最佳实践 内置类设计 3

“代码-3 ”中的实例内置类利用外层类 OuterClass3 中的模板参数 T ,作为 setData 参数的类型。

看似类内置类和实例内置类已经足够使用了。考虑这么一 个场景,一个方法利用了内置类来实现功能,这个方法中的变量需要被内置类来利用,通常可以把变量作为参数,传入内置类构造器或者其方法中,这也是通常的方 法。不过利用 布局 内置类(Local Class) 更为方便,因为局部内置类是在块中(方法也 是一种特殊的块)定义的,这样就很好的解决了上下文的参数传递问题。

参看代码:

package  org.mercy.design;

/**

  *   OuterClass4   是外层类,Printer   局部内置类

  *  

  *   @author   mercyblitz

  */

public   class  OuterClass4 {

public   void  print( byte [] bytes) {

final  String message =  new  String(bytes);

/**

  *   名为Printer   LocalClass,不必把message作为参数传递。

  */

class  Printer {

private   void  doPrint() {

System. out .println(message);

}

}

new  Printer().doPrint();

}

public   static   void  main(String[] args) {

new  OuterClass4().print( "AAAAAAA" .getBytes());

}

}

代码 -4

在“代码-4”的示例中,有人可能会说,这看不出什么好处呀?!如果内 置类依赖的变量超过4个(Effective Java书中提到超过四个参数的话,不利于维护),那么局部内置类是不是方便维护呢?

顺便提到,匿名内置类是局部内置类的一种。

不难发现,局部内置类的缺点是代码混杂(方法和类混在一起),如果依赖 局部变量不多的情况下,在一定程度上面,增加了维护成本。

(其他内容,见附件)

原文地址:https://www.cnblogs.com/danghuijian/p/4400270.html