:: Не фоксом единым
IDictionary
S-type
Автор

Сообщений: 2969
Дата регистрации: 24.04.2004
Периодически натыкаюсь на код:

IDictionary<int, string> dictionary = new Dictionary<int, string>();

Вопрос - будет ли на практике какая то разница с

Dictionary<int, string> dictionary = new Dictionary<int, string>();

Может ли быть такой случай, что второй вариант вызовет проблемы?
Ratings: 0 negative/0 positive
Re: IDictionary
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
По-моему это очевидно.
Вариант с интерфейсом позволяет менять реализацию (при необходимости) никак не затрагивая "клиентов" соответствующего класса (т.е. код этот самый dictionary использующий - особенно если он находится ВНЕ блока кода где создаётся экземпляр - т.е. это не локальная переменная, а поле класса). Существует далеко не только один единственный класс Dictionary<TKey, TValue> который данный интерфейс реализует, более того зачастую пишут и свои собственные классы, этот интерфейс реализующие - а твой код уже гвоздями прибит к Dictionary...
Использование IDictionary - пример следования принципу ООП "зависимость от интерфейса/контракта а не от конкретной реализации".


------------------
WBR, Igor
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 1 Guest

© 2000-2024 Fox Club 
Яндекс.Метрика