区别一个模块设计的好坏,最重要的是此模块相对于外部模块而言,是否隐藏了内部数据和实现细节
理由: 降低一个系统内各个模块之间的耦合,使各个模块能够独立的开发,测试,优化,这样可以加快此系统的开发速度,因为各个模块可以并发的开发!提高了软件的重用性
经验表明:你应该使每个类或成员不被外界访问.
当一个方法修改了父类的方法时,此方法的访问权限不能比父类低,否则编译会报错!这样可以保证子类的实例在可以被父类的实例使用的时候访问!.有一个隐含的,当一个类实现了一个接口时,被实现的方法必须是public,因为接口的方法默认为public!
publc类不应该具有public的域,但有违例的,public static final的时候,而且是指向原语类型的值.当指向一个对象的引用时,仅仅是引用不可以改变,而对象却可以改变的,因此public static final的数组设计就是错误的!!,因为此数组可以改变的,必须将其置为不可改变的
方法1
.private static final Type[ ] PRIVATE_VALUES = { . . . }
public static final List Values =Collections.unmodifiableList(Arrays.asList(PRIVATE_VALUES))
方法2
private static final Type[ ] PRIVATE_VALUES = { . . . }
public static final Type[ ] values(){
return (Type[ ])PRIVATE_VALUES .colne();}