• 2004-03-05

    读《Effective Java》-笔记3

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://pcmanlin.blogbus.com/logs/111652.html

    读《Effective Java》-笔记3
    Chapter 2 创建和销毁对象

    全文:
    Item3
    :通过私有构造器强化不可实例化的能力 
       
    有时创建一个类的目的仅仅就是为了将一组静态方法和静态成员放在一起,这虽然不符合面向对象,但是它们却很有用。
        1
    )组织基本型别或者数组的相关方法,比如java.lang.Math或者java.util.Arrays
        2
    )组织实现一个特殊接口的对象的静态方法,比如java.util.Collections
        3
    )组织一个final类的方法,来代替继承类
       
    通过抽象类来强化类的不可实例化能力是一种不可取的方式,抽象类可以被继承,子类可能就可以实例化,而且会使用户误认为这个类是用于继承体系中的。
       
    编译器只有在类没有定义明确的构造器时才会启用默认构造器,因此只要在类中定义一个明确的私有构造器就可以避免通过默认构造器实例化一个对象。私有构造器外界无法访问,这就确保了类无法由外界实例化,在类内部会进行实例化。
       
    副作用,这种做法导致了类无法被继承,因为在子类在实例化的时候需要访问父类的构造器,但是它无法调用私有的父类构造器。



     


    收藏到:Del.icio.us




    引用

    下面Blog引用了该文: