«Swiz требует, чтобы все обработчики событий были общедоступными, чтобы управлять событиями».
Это правда, но сила Swiz в том, что он не навязывает вам какой-либо (более или менее) выбор дизайна, он просто предоставляет мощные инструменты (внедрение зависимостей, посредничество событий и т. Д.), Которые вы можете применить там, где считаете нужным.
Использование Swiz вообще не требует использования тега [Mediate] - вы все равно можете использовать addEventListener () и прослушивать частные методы, как обычно (я уверен, что вы это хорошо знаете). Насколько я могу судить, посредничество событий Swiz предназначено в первую очередь для использования с событиями уровня системы / приложения. Если вы вызываете прослушиватели событий в рамках одного компонента или компонентов близкого семейства, вы обычно используете стандартные прослушиватели событий. Чтобы общаться между отдельными, иначе не связанными друг с другом компонентами, вы можете обработать сообщение с помощью посредника Swiz.
Короче говоря, в любом случае, когда у вас есть доступ к частным прослушивателям событий (то есть внутри близких компонентов), вы, вероятно, не будете использовать [Mediate] для захвата события, чтобы этот прослушиватель мог оставаться частным. Когда вы используете тег [Mediate], обработчик событий обычно находится в совершенно отдельном месте в приложении (например, презентатор -> контроллер), где он практически не может быть частным в любом случае.
Возможно, я немного не в себе, но мне это кажется таким. Swiz может поощрять слабую инкапсуляцию в некоторых ситуациях, но для меня в целом он предлагает большую модульность.
person
orlade
schedule
11.06.2010