Я читаю основи дизайну моделей C # . Я зараз читаю про шаблон ітератора.
Я повністю розумію, як реалізувати, але не розумію важливості чи не бачу випадку використання. У книзі наведено приклад, де комусь потрібно отримати список об’єктів. Вони могли це зробити, оголивши публічну власність, таку як IList<T>або Array.
Книга пише
Проблема в цьому полягає в тому, що внутрішнє представництво в обох цих класах зазнало зовнішніх проектів.
Що таке внутрішнє представництво? Те, що це arrayчи IList<T>? Я дійсно не розумію, чому це погано для споживача (програміст називає це), щоб знати ...
Потім у книзі сказано, що ця модель працює, виявляючи її GetEnumeratorфункції, тому ми можемо зателефонувати GetEnumerator()та викрити "список" таким чином.
Я припускаю, що в таких моделях є місце (як і всі) в певних ситуаціях, але я не бачу, де і коли.
Fякий дає мені знання (методи) a, bі c. Все добре і добре, може бути багато речей, які відрізняються, але тільки Fдля мене. Розгляньте метод як "обмеження" або пункти договору, що Fзобов'язує їх виконувати класи. Припустимо, ми додамо dвсе-таки, бо нам це потрібно. Це додає додаткового обмеження, щоразу, коли ми робимо це, ми все більше накладаємо на Fs. Врешті-решт (найгірший випадок) лише одне може бути Fтаким, чого ми можемо також не мати. І Fстільки обмежує, що існує лише один спосіб зробити це.