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