1. 他说Method要的Visibility要尽量地窄,可以private的就不要把它public. 这有很多好处,不过我印象最深的是对重构的好处。的确,public方法越多,调用它的地方就可能越多,refactor时就要小心得多。
2. protected 只应该用于抽象方法上。如果具体的方法用了protected以让子类覆盖,那这就是一种concrete inheritance,这种感觉是很不舒服的。
3.包可见性的方法基本用不上,除了一种情形:该方法不是契约级的方法(实际上是private),但它又要进行单元测试。为了单元测试这个方法,可以把它置为包可见性,然后在同一个包下写它的单元测试类进行测试。 ——我不喜欢这种用法,但我承认它是封装性跟简单性的一个比较好的折衷。