![]() |
|
||||||||||
|
|||||
|
Паттерн – это типичная задача, под которую можно предоставить типичную реализацию в псевдокоде. А тут эмвэцэ, скинни-фэтти контроллеры, непонятно чья задача общаться с сервером, оправдывание существования "главного контроллера", оправдывание использования эмвэцэ без медиаторов...
Столько вопросов и так мало ответов. А оказывается – всё уже задокументировано единичной реализацией. Думаю, не я один буду очень рад внять опыта от профи, который смог обобщить это всё. in4core, делись, где встретить такого человека?
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
[+4 06.05.14]
|
Psycho Tiger - ты полностью отходишь от темы, совершенно начинаешь нести пургу о другой части, не о той, которая стоит в вопросе. Причем тут задача общения с сервером и stage главного контроллера? Что за бред. Ты заработался походу, нефиг тут филосовстовать - тут конкретно поставленный вопрос был, на который есть конкретный ответ.
Ну, а уж если ты хочешь поговорить о сервере, который тут вообще не причем. То общаться с сервером как раз задача контроллеров, а вот каких именно - непонятно в любом случае, но не то, чтобы непонятно, тут нет четкой постановки. У меня например в приложениях с сервером общаются почти все контроллы, главный общается с методами стейтов ( начало игры, конец игры и т.п.) , например, а дочернии контролы общаются с методами, ну например , методами функционирования инвентаря или каких то других мини боксов, к примеру. Но это опять все сугубо личное, у каждого свое. Да , я и сам говорил ни раз, что МВС - тема то философская , тут нет четко поставленной задачи, но в некоторых местах, она все же есть, иначе бы формулировки паттерна не было. Так вот и с главным контроллером - new MainController(host) , new BaseModel(БЕЗ НИЧЕГО), new BaseView(...rest) . Понятно дело, что от концепции всегда можно отойти, придумать свою - именно для этого и создан МВС, но написать например new BaseModel(this._server) - можно сразу руки рубить.
__________________
Марк Tween |
|
|||||
|
Вопрос был в описании "паттерна MVC".
Когда ты пишешь о том, что паттерн создан для того, чтобы отойти от его концепции – это значит что ты не понимаешь предназначение паттернов. Когда ты называешь архитектуру паттерном – это значит что любая архитектура у тебя под копирку. Это значит что ты не растёшь над собой. Когда ты утверждаешь что "общение с сервером задача контроллера" – это значит что ты используешь "толстый контроллер". Всё бы ничего, но твоя формулировка четко отдаёт главным: ты не понимаешь, зачем придумали MVC. Ты используешь его "потому что это круто и все так делают" и держишь в уме заготовленную фразу "ну это типа отделяет отображение от логики". Но что хуже всего: у тебя нет желания саморазвития. Это выражается в отсутствии взглядов на MVP, MVVM, Model Delegate или даже примитивно похудевший контроллер, который повышает модель из статуса Observable VO в статус действительно модели. И это даже без взгляда на твои недавние топики с вопросами, которые стоило разобрать, ну не знаю, года 2 назад? Извини если что-то сказал обидное, но я глубоко тобой разочарован.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
[+1 25.10.13]
[+4 18.03.14] |
Лучше бы обсудили имплементацию нескольких интерфейсов у класса Вида или Модели и их взаимодействие с соответствующими proxy классами. PTiger любит абстрактно порассуждать. Не вижу ничего плохого.
|
|
|||||
|
[+4 06.05.14]
|
Ни в коем случае, я не обижаюсь, ты сказал все верно, я уже давно не развиваюсь в этой сфере, дабы не испытываю большой нужды, у меня четко поставленная концепция разработки программ на МВС, лишнего мне не надо. А вот по поводу - пишу на нем потому что МОДНО - тут не прав, я пишу, потому что это очень УДОБНО, удобнее, пока ничего не встречал, как в плане дописывания модулей, так и в плане быстрой организации любого приложения.
Psycho Tiger. Давай тогда поставим вопрос ребром. ( не знаю как у тебя, у меня программирование это второй заработок , скорее больше хобби ). У меня нет ОГРОМНОГО ( подчеркну это слово, дабы тем не менее всегда узнаешь, что то новое) желания развития дальше в этой сфере а) Все, что я знаю - достаточно для того, чтобы писать хороший, чистый код, который будет выполнять то, что от него требуется б) У меня нет ни одного приложения, которое не работает или работает с глюками. в) У меня стабильная клиентура, которая мной полностью довольна, мне не нужно рыпаться по фриланс сайтам ища работу за копейки. г) При том, что это мое хобби, так скажем, мой заработок составляет в среднем 3000$ в месяц. И так, я имею все, что нужно, а так же высокий ЗП, даже по МСК, если считать. О каком саморазвитии мне нужно подумать, скажи мне, студент? Сидеть, читать книжки по паттернам, статьи на форумах англоязычных и т.п., ради лишь того, чтобы сидеть тут с тобой и мерится письками, кто лучше понимает МВС? Ну это просто смешно. Да несомненно, это может еще и пригодится работая в команде флешеров, но меня данная стезя не привлекает , подстариваться под кого то, соблюдать конвенции принятые только в данном офисе и т.п. - фу и фу. На самом деле ты еще просто молод, вот и прет у тебя юношеский максимализм, типа я круче всех, могу со всеми поспорить и т.п. - ну это не плохо и не хорошо, это в порядке вещей, с возрастом придет осознание, и естественно ты забудешь, о том, как сидеть и пояснять всем , что такое MVP, а что MVVM , у тебя будут слегка другие приоритеты в жизни Удачи.И я думаю далее, лучше помоги человеку, который задал вопрос, дабы тема вроде как не для холивара, а не спорь со мной, все равно не переспоришь)))
__________________
Марк Tween |
|
|||||
|
[+1 25.10.13]
[+4 18.03.14] |
|
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Прежде чем начать оправдываться, хочу поблагодарить in4core за его труд!
Если бы не он, то возможно я бы и не получил ответа, на свой глупый вопрос. Такой "код".. я даже не буду говорить от куда он взялся, лучше его раз и навсегда забыть. Статью Psycho Tiger я не один раз прочёл, но возможно и вправду что то не допонял. Ещё есть догадка, что меня не понимают из-за того, что я хочу сделать так, как в жизни не когда не делают. Последний раз редактировалось Akopalipsis; 30.09.2013 в 02:08. |
|
|||||
|
Примерно так.
Контроллер инитит модель и вью. Вью подписывается на модель. Контроллер подписывается на вью. Когда из вью что-то прилетает в контроллер - он может дернуть модель и что-то в ней поменять. А модель в свою очередь собщит об изменении наружу. Так что всё грубо говоря верно, только кода мало, думаю когда будет больше - появятся еще вопросы. Вот мои комментарии к коду: просто принимать что-то в модель и просто диспатчить наружу смысла нету. По хорошему в этой функци должны происходить какие-то действия, которые меняют модель. А модель просто диспатчит событие CHANGE без данных. Данные в ней доступны, и кому надо сможет их получить, когда узнает что что-то изменилось. Т.е. именно эту ситуацию лучше было решить без контроллера вообще. В модели лежит словарь: А вью при клике просто лезет в модель и смотрит нужный цвет. //========================== Второй вариант. Так как сделал ты. Но в модели есть переменная : currentColor И в методе в котором у тебя свитч и диспатч пачки событий наружу - просто установка значения в эту переменную, и диспатч ОДНОГО события CHANGE вконце. Вью получает событие, и рисует model.currentColor //==================== Короче идея в том что в модели не только логика. Но и данные. Т.е. логика которая не меняет данных - модели не очень нужна. Хотя туда можно добавить какие-то методы типа:
__________________
Кто к нам с чем для чего - тот у нас того от того. |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:57. |
|
|
« Предыдущая тема | Следующая тема » |
|
|