14.02.2017 Views

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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

акула-нянюшка и плотник-мурав<strong>е</strong>й<br />

Кат<strong>е</strong>гории данных н<strong>е</strong> бс<strong>е</strong>гда мо)кно сохранять 6 п<strong>е</strong>р<strong>е</strong>м<strong>е</strong>нных типа string<br />

Пр<strong>е</strong>дположим, у вас <strong>е</strong>сть н<strong>е</strong>сколько рабочих пч<strong>е</strong>л из класса<br />

Worker. Как написать конструктор, который в кач<strong>е</strong>ств<strong>е</strong> парам<strong>е</strong>тра<br />

б<strong>е</strong>р<strong>е</strong>т работу? Если названия работ пом<strong>е</strong>щать в п<strong>е</strong>р<strong>е</strong>м<strong>е</strong>нны<strong>е</strong><br />

типа string, получится прим<strong>е</strong>рно такой код;<br />

Наш<strong>е</strong> прилож<strong>е</strong>ни<strong>е</strong> для управл<strong>е</strong>ния<br />

пч<strong>е</strong>лами оплсл<strong>е</strong>живало радоту<br />

каждой из них при помош,и строк<br />

вида Stiny Patrol или Nectar<br />

Collector.<br />

Код позволя<strong>е</strong>т п<strong>е</strong>р<strong>е</strong>дать эти<br />

знач<strong>е</strong>ния в конструктор, даж<strong>е</strong><br />

<strong>е</strong>сли программа подд<strong>е</strong>ржива<strong>е</strong>т<br />

только таки<strong>е</strong> занятия как<br />

Sting Patrol (Охранник), Nectar<br />

Collector (Сдорищк н<strong>е</strong>ктара)<br />

и други<strong>е</strong>, привычны<strong>е</strong> для пч<strong>е</strong>л<br />

варианты работы.<br />

Worker buzz = new Worker("Прокурор");<br />

Worker clover = new Worker("Кинолог");<br />

Worker gladys = new Worker("Диктор");<br />

К конструктору W orker можно добавить код, пров<strong>е</strong>ряющий<br />

корр<strong>е</strong>ктность каждой строчки. Но тогда, чтобы расширить<br />

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

данный код и п<strong>е</strong>р<strong>е</strong>компилировать класс W orker. Так что<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> дублирующийся код, затрудняющий<br />

вашу работу.<br />

Фактич<strong>е</strong>ски нам нужно объявить: «Зд<strong>е</strong>сь могут использоваться<br />

только строго опр<strong>е</strong>д<strong>е</strong>л<strong>е</strong>нны<strong>е</strong> знач<strong>е</strong>ния». И п<strong>е</strong>р<strong>е</strong>числить эти<br />

знач<strong>е</strong>ния.<br />

340 глава 8

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

Saved successfully!

Ooh no, something went wrong!