W skrócie: cały kod polegający na reprezentacji podstawowej zostanie zmieniony na pod numerem, jeśli zdecydujesz się zmienić reprezentację.
Na przykład, zdecydowałeś się najpierw użyć TreeMap
, ale nie chcesz już zamawiać (w większości przypadków), więc zmienisz na HashMap
. Ktoś przeplata twoją mapę, próbując zdobyć rosnącą listę. !!
Używając wzoru iteratora, zawsze możesz dać użytkownikowi możliwość przechodzenia przez coś z pewną logiką (lub po prostu losowo, co jest rodzajem logiki), nie wiedząc, co to jest pod maską.
Teraz, jeśli używasz HashMap
zamiast , możesz odsłonić posortowany widok dla użytkownika.Jeśli podasz tę SortedIterator
i powiesz użytkownikowi, że "używając tego, zagwarantujesz, że wynik zostanie posortowany, ale nie mogę powiedzieć ci nic o tym, co jest poniżej", możesz zmienić reprezentację tak, jak chcesz, o ile umowa tego SortedIterator
jest przez Ciebie obsługiwany.
W skrócie, użytkownik (użytkownik) używa "Iteratora" w ten sam sposób dla 'ArrayList',' HashMap', 'HashSet',' TreeSet'. Nie dbasz o implementację za –