Добавил:
2200 7008 9480 6099 TKFF БЛАГОДАРНОСТЬ МОЖНО ТУТ ОСТАВИТЬ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДИПЛОМ 2025 / 4 курса_МТУСИ / 1 КУРС / Информатика / С# для чайников - Мюллер.pdf
Скачиваний:
0
Добавлен:
04.06.2025
Размер:
53.3 Mб
Скачать

Гибкие зависимости через интерфейсы

 

n3К.E ..3..

..

E2.E..

.....

.4..

 

i . .......

 

.... О

..

..

..

3

3 О.E.. 2.. .ш.......

 

 

2........

 

 

......

. .......

ж...О..

9..

.....g

8.. E.

Д.E.......

 

..

2........

 

 

n . .....

...у

.......

 

.E2...

3.. .... ....

 

ny

 

 

....3

...EE.

.

 

 

 

 

 

 

 

 

 

 

 

 

 

..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

г

 

 

 

 

 

 

 

 

 

 

 

1 1 п

, .

п

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

...

....О..

 

.E. . ...

О

.. .....E.

 

E......К

 

..E.

. .. .EE.

....

 

....щ.

з . ...л

.....К..E.

 

..E

......

 

.. ...

..2.

iiiЖ6y...

5....

 

 

ny

 

 

 

.2 ........

 

 

 

...E...

E.4

....3

...EE ...

i

ii.

iiiЖ

i

iИ ...E.. ..

.

......

 

.

...EE.

 

i

i

..EE

E ...........

 

 

 

 

...E...E....

 

 

......E.

 

..E..

E.. ..

.n. ..

.. .. ..

.

....

..

iИiЖО..

..

..щ.

 

E.....

 

.E. .

2....

 

.3 ..

E.

2.....

 

..... ....

..E.К.

 

. ..

iiiЖ6п..E..

9.. . .....

 

.

.....В

.... ..

 

... .E2...

 

3.

..E...

E..

 

.....

..

...

.щ ..

.

.....8

..E.л

 

....

.......

 

 

...E...

E..

 

от лсыoннннбBярнtбылян,ыая,нтяввн

н, дtбдявtо

 

А бстрактный или конкретный? Когда следует

 

 

 

 

 

 

и спользовать абстрактный класс, а когда - интерфейс

 

 

 

 

п

....

о

......

Д 8. .

 

. .......

..E

E

2..4...6

 

 

.. .

......

О..

......

 

2..4.

2...E.......

 

E....

 

.........

2

....2

Жил

.3

...

E

......

 

3 ...

2...

E

.......

 

E....

 

.

..2...

2.....

EE.

 

 

Ап.

6.... .. ..

3......

 

 

9.g

 

..2...

...EE.

 

 

... ...EE

 

О.E...

 

 

сэ

п.

.E. .. ......

 

....

E

У

 

с

8.мк .ш.E....

 

3.....

l

.......

.

 

...

2..

 

......6

 

 

.E....

В

4..

2...

E.. .....

 

E....

 

... 4.24..6

п .

О.E...

...щ.

2..4

3...

2...

E.....

g

 

..

E....

 

......n.

 

..........

 

..

....e

........

n.

 

.. .

щ 2...E.......

 

 

 

426 L278gп .п 4rкГИиР У.УвЗГР.Зв ФtlР РФГпб в ФБвlППЗ вФt lРЗГп Рlп7,п

собой экземпляры конкретных классов. ВsСтPоатг:ю ,e пюююэто класс, ко­ торый может быть инстанцирован. В нем не используется ключевое слово abstract, и он реализует все методы.)

В С# абстракции можно представить двумя способами : с помощью абстрактных классов или с помощью интерфейсов. Эти способы от­

личаются один от другого, и эти отличия могут влиять на ваш выбор.

ЗАПОМНИ!

»' Используйте абстрактный класс, когда имеется определенная реализация, которая может с пользой применяться подклассами - абстрактный базовый класс может иметь определенный реальный

код, наследуемый подклассами. Например, класс Robot может об­ служивать часть функциональности роботов, не связанную с пере­ мещением.

Абстрактный класс не обязан быть полностью абстрактным. Жест­ кое требование - наличие как минимум одного абстрактного, не реализованного метода или свойства, в то время как прочие могут быть реализованы (иметь тела). Использование абстрактного класса для предоставления определенной реализации своим подклассам путем наследования позволяет избежать дублирования кода, что всегда неплохо.

»Используйте интерфейс, когда у вас нет никакой реализации для

общего использования или когда ваш реализующий класс уже име­ ет базовый класс.

Интерфейсы С# полностью абстрактны. Интерфейс С# не предостав­ ляет никакой реализации ни одного из своих методов. Он может также внести дополнительную гибкость, невозможную иначе. Ис­ пользование абстрактного класса может оказаться невозможным в связи с тем, что вы захотите добавить новые возможности к классу, имеющему базовый класс (исходный текст которого вы не можете изменять). Например, класс Robot может уже иметь базовый класс из библиотеки, написанной не вами, который вы, само собой, не в состоянии изменить. Интерфейсы в особенности хорошо подходят для представления полностью абстрактных возможностей, таких как возможности перемещения или вывода, которые вы намерены добавить к нескольким классам, кроме этого не имеющим ничего общего один с другим.

Реализация отношения СОДЕРЖИТ с помощью интерфейсов

Ранее упоминалось, что вы можете использовать интерфейсы в качестве бо­ лее общего ссылочного типа. Содержащий класс может ссылаться на содержа­ щийся не через ссылку на конкретный класс, а через ссылку на абстракцию - либо на абстрактный класс, либо на интерфейс С#:

ГЛАВА 1 8 Интерфейсы 427

428

г

7

0

Дел е г и р о в а н и е со б ь1 т и й

ВЭТО Й ГЛА В Е . . .

,)) ; Ие'nользо13ан1.1е делеrатов для ,решенl('lя задачи обратного

,;,ВЫ 9Вё1

. ))

Е

 

,

в)

и н

В вансн

мн

дн

он

,

испо ьзование

т)

д у)

Е п )

б)

 

ен

оАнун

ГОн ен Лерн

тн

делёгатов для на'стройки·метода

·, » · Ис:riользование, анонимных методов

)): 'Со дани

е

с_обытий С#

))-w ",» .

 

т) р с) лак) )нр) О)

Т) e) Лt) р) и) м)

 

от

 

л­4)eтл:л ,(vл,)

та глава завела нас в тот закуток С#, который присутствовал в этом языке программирования изначально. Возможность

(callback), метода, используемого для обработки событий, очень важ­ на для приложений С# всех видов. Фактически в настоящее время обратный вызов используется во всех видах приложений. Даже веб-приложения, чтобы работать должным образом, должны иметь некоторый механизм обратного вызова.

Альтернативой является приостановка приложения в ожидании чего-то. Это означает, что приложение не будет реагировать ни на что, кроме ожидае­ мого ввода. И менно так работают консольные приложения, рассмотренные к этому моменту. Вызов Console . Read ( ) , по существу, останавливает приложе­ ние, пока пользователь не выполнит некоторый ввод. Консольное приложение может работать таким образом, но если вы хотите, чтобы пользователь мог

З

 

онокr до

 

 

ой

:

п

р,

 

 

б ,_

о

б

 

 

,

тно

r9 П

 

 

 

аПв ,

 

 

в

м

 

 

о

 

з лел

 

 

 

 

 

р

 

 

р

З

 

И П

 

рр

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

 

 

,-

нмо

с п

 

 

 

 

 

 

ь

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Б

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

П

 

р З

р_,

 

р

 

р

 

 

­111.,

 

 

,,-,

Бр

 

в,.

 

 

,

 

еИ

ре

 

и еое .,

 

Б,111,- р.,

 

п,_

111,

 

,,-­_ри

 

.,_

 

р

 

Зи ,-, .,п,и

Пр111Б,.р

 

 

,-ЗиБ

 

р

 

,

,

,_,д,

 

 

риПС,-,

 

 

,111

,БЗ.,,.ПС

П,в.,.­

 

рд

 

,П.,и П.,.З

 

рт.

 

 

 

 

 

,п ,ББ,.

,

 

.,вЗ

 

Б,д

,,-р.­

 

_,111,и

 

р Б,Б.,Пр.­

 

 

 

ЗП

 

 

,.­д, ,-р111 п,.,в

 

­

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,111,-,т, ,-,,вЗ

 

,-,,

 

 

 

 

П.

Б

 

 

,,-р,Б.,

_,

 

 

 

, _,_

 

 

 

 

.,к,

 

р,-,т_,

 

 

..,в

,.

 

 

ПС Б,д

,,- р.­ _,111,и

 

 

 

 

 

 

,Б.р111,.

 

 

 

,П,-р _,т_,

 

 

,-,

р,-.,.,П,

 

,

 

,

 

п,п .,в,.,,.

 

 

р,-_,_,.,.

 

 

 

,_,

 

ЗБ, ,-,,-рС

д,_,,-рС

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,п,Ст,. рд,,-

 

., ­,-,СБ,

,Пп,

 

вЗП..,

 

 

 

в,т

 

 

 

,-,т,.,д_,

 

 

 

 

,

,

111,_

 

,,-,-,

Б,

 

д

 

,рС

 

Б,_,дЗ ,

 

,С п,п,С

 

 

 

,П.­ р.,

 

­,-,и .,в,.З

 

 

 

 

 

.рБ, п,Бр.

 

,

,,-рС

 

,и ,

 

 

ЗБ,

,-,,-,

,в,.,

р,-_рп,.,.,

 

,П,-,

,,-,

,-, .,111

 

 

 

.,

_

р,-,-З,

,Б,.,

 

рр

.,111С

 

,.

 

.,111,,-р

 

д

 

,,-С,111,.и

 

 

 

 

., ,-, Б.,т.,111111рП.П_,111

 

 

 

 

СдЗ_, ,-,дЗ

,,.ПС И сри

 

еь

 

чь

ИчИ

 

 

 

 

 

 

 

 

вЗ

 

,-,

_

р,-,-З,

,Б,.

 

 

 

,

 

рр,

,,-р

 

,

.,п,,

 

.,111С

 

,111 Б,..,в

 

,.ПС

 

_

 

Сд,

 

,.

 

,,-рС

 

 

 

П,и.,в,.З

 

 

,

д,.,111

Б,П.,С,-е,

 

 

,.П

 

,кр

,

 

 

_,_,С

 

 

,П.­

,в,.З

 

 

ЗБ,

 

 

,-,,-,

 

 

 

,.р,_р

,П_р

 

 

 

Б.р

 

Б,111,

р

 

 

 

иИ

 

ИрсриеИ

И

 

чь

 

Ичр

 

 

 

 

 

 

 

 

 

 

,,-р

Б,ПЗ

 

,

 

. П,т,-,

 

 

 

,-,в,д

 

 

 

п

ПП,

п,.,.Зи

 

 

р,-р

рр

,

,

 

ЗБ,

 

,-,,-р,

 

_

,,-,-,и

 

,Б,

,

рр

 

 

 

.,.

 

_

,ПП р ,в,-,

С,.

П

,ир,-

 

_рп,.,.

 

 

 

ПС

р..,П.­

 

 

.,111

 

 

.,

 

 

З,

 

к,-З

 

Б.,_,П.,

 

 

р.­

 

_

 

р,-,-,и

 

,Б,.,

 

рр

 

 

.,.

111,.,_

 

,в.,.,-,т,

 

 

 

 

 

Зд,

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,.,_

 

 

,в.,.,-,т,

 

 

 

 

Зд,

111,к,.

 

 

 

Б

р,-,_ ,к,.­

.,111

 

к,

 

_

 

,ПП

 

 

.,

р _

р,-

 

,-,С ,Б,.,

рС

 

 

,-

 

_,_

 

 

, вЗ

 

Зд

,-,р

 

рк,,-,

 

 

рд ПБ,

 

­,-,р-,

 

_

 

,-

,

 

 

,

,

 

П.

,

,,.ПСПр.

,

 

 

рС_,т_,

 

 

р,-_,п,.,.,111

 

 

 

 

 

д,,-р111,,.ПС

 

_. т,и

 

_

,ПП

.,

 

111,к,-,

 

Б

 

р.,

еС.­п 111,к

 

 

_ т,.,_,-,111

 

 

 

д ,,-_

 

 

 

 

вр111,и

.,.

 

 

 

п,

 

 

,-,

 

,,-,

 

 

, .,в,.З

 

_

р,-,-,С ,Б,.,

 

рС

 

Б.,_,П.,

 

С,.

 

 

 

111,

 

,,-рд111 _

 

Сд

,,-п,

п,_

р

 

вЗ

З_,

 

р П

,,111

 

.,в,,-п

 

 

 

111,вр

 

_

р.,вЗ

 

 

,111,.­

 

,д111,к,-,П.­

П,д

,,-р.­ПС

 

П ,-р111

 

 

.,и т

 

,

 

в,

_,.

 

 

 

,ППп,дЗ

,.­,ПС.,111

 

 

_,п

 

,

_,_

 

111,к,.

 

 

,-,П..,р.­

 

111,

 

,,-рд111,в.,.,-,т,

 

 

 

 

Зд, р, п,

 

 

,

 

., ,-,,в

 

,_р111

 

 

,

 

ЗБ,

 

р,-.­ д

 

,-,,_ _,111,и

 

 

 

 

 

 

 

2

35

 

0

9

 

3750

 

 

0

620

3

 

 

650

 

 

 

0

 

 

 

 

 

270

6399

60

 

 

 

 

 

35

­

 

 

 

 

 

 

 

0

 

 

 

 

50 0­23

 

2

60

 

6399 0706 ­0

 

ЗАПОМНИ!

 

 

25

2­09

 

 

907­

 

 

53

 

0

 

22

 

 

 

0

0960

 

520

3

 

2625

 

63

 

 

 

07 53­

 

3­35

293

 

63

 

37520

 

 

 

­93552

2

 

 

0

 

0

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

430 ЧАСТЬ 2 тaфдг теоtоавд етв аотрееодижаоща раа ва отревдиерииси

Соседние файлы в папке Информатика