В шаблоне модель-представление-контроллер (MVC) объекты, хранящие данные, изолированы от объектов, которые обрабатывают представление: роль объекта, реализующего MKOverlay, заключается в управлении хранением данных, а также рольобъекта MKOverlayView - для обработки представления на карте.
Например, у вас может быть объект ApartmentBuilding
, который хранит данные об арендаторах, арендной плате, налогах на недвижимость и т. д., и вы можете захотеть использоватьэтот объект в приложении, которое отображает вашу империю недвижимости на карте - но вы можете также хотеть использовать те же данные ApartmentBuilding
в приложении, которое рассчитывает ваш налоговый счет, или которое создает календарь запланированныхобслуживание.
Если код, который моделирует ваш ApartmentBuilding
, четко отделен от кода, который отображает ваше здание на карте, то вы можете связать свою модель ApartmentBuilding
с другим объектом вида - a MaintenanceCalendarView
, скажем, или TaxSpreadsheetView
- и ваш код легче поддерживать и повторно использовать.