將變量設(shè)置為私有有一個理由:我們不想其他人以來這些變量。我們還在想心血來潮時能自由修改其類型或?qū)崿F(xiàn)泡挺。那么辈讶,為什么還是有那么多程序員給對象自動添加復(fù)制器和取值器,將自由變量公之于眾娄猫、如同他們根本就是公共變量一般呢贱除?
1.數(shù)據(jù)、對象的反對稱性
過程式代碼便于在不改動既有數(shù)據(jù)結(jié)果的前提下添加新函數(shù)稚新,面向?qū)ο蟠a便于在不改動既有函數(shù)的前提下添加新類勘伺。
2.德墨忒耳律
只跟朋友談話,不與陌生人談話褂删。比如如下代碼違反了得墨忒耳律
final String outputDir = ctx.getOptions().getSratchDir().getAboulutePath();