类是否为“轻量级”,跟代码行数有关系吗?像我写的一个类,不算空行和注释,大约500行的样子;但是该类直接继承 Object,构造函数只包含一个赋值语句(将参数值赋给 String 类型的成员),根据 Practical Java 的说法,应该算是轻量级的类吧?

解决方案 »

  1.   

    重量级组件:运行平台必须存在一个对应的组件.
    轻量级组件:在一个虚拟的画布上画出来的组件(所以swing较慢),所有轻量级组件"最终"要放到重量级组件(jframe,jdialog)中.由于是画出来所以能做到各种平台上一致的表现.同样,如果混合重量级组件和轻量级组件容易引起重叠上的冲突. JDK 1.2 之后,Java 有了另一组 GUI 的 API,叫做 Swing。因为 Swing 是 lightweight 的 API,所以无所不能,不但有各式各样先进的组件,而且连组件风格都可抽换。Swing 出现之后,大家很快地就不太使用 AWT 了。
    不要以为 Swing 是用来取代 AWT 的,其实 Swing 是架构在 AWT 之上做出来的(Swing 有四个 heavyweight 组件),没有 AWT,也就不会有 Swing。Swing 的出现只是减少程序员直接使用 AWT 的机会,而不会让 AWT 消失。 在swing中有5个heavyweight组件: JFrame, JDialog, JApplet, JInternalFrame, and JWindow ,其它的组件全部是源自JComponent类和lightweight的组件,尽可能的不要使用awt组件。 
      

  2.   

    能否更宽泛一点,Swing 和 AWT 各有优劣,对他们进行比较并非我的本意。我想了解的是在保持我的类现有功能的前提下减少创建大量实例所需的的成本,有什么样的设计原则?
      

  3.   

    未经证实的答案:
       只用java语言写的就是 轻
    调用了 C 等的语言就是 重
       
      是不是啊?~~~
      

  4.   

    个人觉得只要是POJO就是轻量级的,就是说不要依赖任何厂家的特殊平台。
      

  5.   

    看来我文不对题了。ToT 好吧我不谈轻重了,我想说的是:在保持我的类现有功能(即那些 public 方法)的前提下减少创建大量实例的开销,有什么样的设计原则?