14.02.2017 Views

. Стиллмен, Дж. Грин - Изучаем C#, 2-е издание

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

инкапсуляция<br />

Нич<strong>е</strong>го н<strong>е</strong> понимаю. Закрыто<strong>е</strong> пол<strong>е</strong> н<strong>е</strong><br />

позволя<strong>е</strong>т другом классу использовать с<strong>е</strong>бя. Но <strong>е</strong>сли<br />

пом<strong>е</strong>нять private на public програллма вс<strong>е</strong> равно буд<strong>е</strong>т<br />

постро<strong>е</strong>на! А вот добавл<strong>е</strong>ни<strong>е</strong> модификатора private<br />

д<strong>е</strong>ла<strong>е</strong>т компиляцию н<strong>е</strong>возможной. Зач<strong>е</strong>м мн<strong>е</strong> тогда<br />

вообщ<strong>е</strong> <strong>е</strong>го использовать?<br />

Потому что иногда возника<strong>е</strong>т н<strong>е</strong>обходимость<br />

скрыть н<strong>е</strong>кую информацию от остальной части<br />

программы.<br />

Большинство пользоват<strong>е</strong>л<strong>е</strong>й поначалу н<strong>е</strong> могут принять<br />

ид<strong>е</strong>ю инкапсуляции, так как н<strong>е</strong> понимают, зач<strong>е</strong>м<br />

нужно скрывать поля, м<strong>е</strong>тоды или свойства одного<br />

класса от другого. Но пост<strong>е</strong>п<strong>е</strong>нно вы пойм<strong>е</strong>т<strong>е</strong> причины,<br />

по которым н<strong>е</strong>которы<strong>е</strong> классы им<strong>е</strong><strong>е</strong>т смысл<br />

д<strong>е</strong>лать н<strong>е</strong>видимыми для остальной части программы.<br />

инкапсуляция д<strong>е</strong>ла<strong>е</strong>т классы...<br />

-к Л<strong>е</strong>гкими в прим<strong>е</strong>н<strong>е</strong>нии<br />

Вы уж<strong>е</strong> зна<strong>е</strong>т<strong>е</strong>, что поля нужны для отсл<strong>е</strong>живания данных. И большинство<br />

из них прим<strong>е</strong>ня<strong>е</strong>т м<strong>е</strong>тоды для обновл<strong>е</strong>ния информации —<br />

эти м<strong>е</strong>тоды н<strong>е</strong> нужны никакому другому классу. Часто поля, м<strong>е</strong>тоды<br />

и свойства одного класса сов<strong>е</strong>рш<strong>е</strong>нно н<strong>е</strong> нужны в других частях<br />

программы. Пом<strong>е</strong>тив их словом private, вы уб<strong>е</strong>р<strong>е</strong>т<strong>е</strong> их из окна<br />

IntelliSense.<br />

★<br />

•к<br />

Л<strong>е</strong>гкими в управл<strong>е</strong>нии<br />

Вспомнит<strong>е</strong> программу Кэтлин? Пробл<strong>е</strong>ма возникала потому, что<br />

форма им<strong>е</strong>ла н<strong>е</strong>поср<strong>е</strong>дств<strong>е</strong>нный доступ к полю. Если бы пол<strong>е</strong> было<br />

закрытым, программа работала бы правильно.<br />

Гибкими<br />

Иногда по прош<strong>е</strong>ствии вр<strong>е</strong>м<strong>е</strong>ни возника<strong>е</strong>т н<strong>е</strong>обходимость вн<strong>е</strong>сти<br />

в программу изм<strong>е</strong>н<strong>е</strong>ния. С хорошо инкапсулированными классами<br />

н<strong>е</strong> возника<strong>е</strong>т вопросов по их дгшьн<strong>е</strong>йш<strong>е</strong>му использованию.<br />

Инкапсуляция<br />

означа<strong>е</strong>т скрыти<strong>е</strong><br />

информации<br />

одного<br />

класса от другого.<br />

Она помога<strong>е</strong>т<br />

пр<strong>е</strong>дотвратить<br />

появл<strong>е</strong>ни<strong>е</strong><br />

ошибок.<br />

ШTVP»Л<br />

Как плохо инкапсулированны<strong>е</strong> классы могут пом<strong>е</strong>шать<br />

р<strong>е</strong>дактированию программы в будущ<strong>е</strong>м?<br />

дальш<strong>е</strong> > 213

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!