Когда-нибудь завели разговор, спросив «Как ты ты?», Только чтобы встретиться со списком их неприятностей и триумфов, злобой и неинтересными интересами, чувством неуверенности и, возможно, Глубина обзора кексов для завтрака ...
... это не скрытие информации. Большинство из нас этого не делают. Дети делают это, по крайней мере, до тех пор, пока они впервые не встретят кого-то, кто использует всю не относящуюся к делу информацию, которой они делятся, чтобы причинить им боль или каким-либо образом унизить их ... затем они учатся быть скрытными и параноидальными, еще одним шагом на пути к зрелости.
Большинство из нас также учатся делать то же самое с кодом, который мы пишем, раскрывая достаточно, чтобы ладить с другим кодом, но не настолько, чтобы позволить ему стать зависимым от нашей реализации. Это несколько более нюансно, чем просто не показывать внутренние данные - простое размещение методов доступа или методов получения / установки свойств между внутренними данными и холодным внешним миром не более скрывает информацию, чем начало разговора об «моем друге» и «его» проблема герпеса ...
Вы получаете суть вопроса, когда начинаете различать интерфейс и реализацию. Когда вы предоставляете свойства, потому что они соответствуют представлению о мире, ожидаемом вашим клиентским кодом, а не потому, что они предоставляют им удобный способ манипулировать вашей реализацией. Это редко чистое разделение, даже при разработке нисходящих, и надуманные примеры могут легко принести больше вреда, чем пользы: изо всех сил пытаться запутать детали реализации, которая оказывается очень хорошим интерфейсом, совершенно вредна.