Hi all,
вот тут кое-кто обвинил меня в сабже, и хотя я с предъявленными обвинениями
не согласен, захотелось поглубже разобраться в предмете. На самом деле, я
никогда не встречал сколько-нибудь внятных рассуждений на эту тему.
Может кто поделится ссылками, а лучше ссылкой, а еще лучше текстом, где
четко и не двусмысленно описывается данная концепция с примерами кода.
Спасибо
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
31.05.07 22:42: Перенесено из 'Образование и наука'
Здравствуйте, cr lf, Вы писали:
CL>Hi all, CL>вот тут кое-кто обвинил меня в сабже, и хотя я с предъявленными обвинениями CL>не согласен, захотелось поглубже разобраться в предмете. На самом деле, я CL>никогда не встречал сколько-нибудь внятных рассуждений на эту тему. CL>Может кто поделится ссылками, а лучше ссылкой, а еще лучше текстом, где CL>четко и не двусмысленно описывается данная концепция с примерами кода. CL>Спасибо
Здравствуйте, cr lf, Вы писали:
CL>вот тут кое-кто обвинил меня в сабже, и хотя я с предъявленными обвинениями CL>не согласен, захотелось поглубже разобраться в предмете. На самом деле, я CL>никогда не встречал сколько-нибудь внятных рассуждений на эту тему. CL>Может кто поделится ссылками, а лучше ссылкой, а еще лучше текстом, где CL>четко и не двусмысленно описывается данная концепция с примерами кода.
вот смотри: стоит у меня на столе грамота за хорошую работу.
рамочка из магазина, грамота сделана в фотошопе, ну там имя мое, за что она дана, и подпись начальника.
данные (для каждого случая свои): мое имя, случай, дата, подпись начальника.
интерфейс (меняется редко, заточен под нужны юзера): рамочка, лист бумаги, графический шаблон.
код (последовательность выполнения, пишеться один раз): открыть графический файл и вписать данные, распечать, взять рамочку, вложить распечатку, зафиксировать, подарить.
Здравствуйте, cr lf, Вы писали:
CL>вот тут кое-кто обвинил меня в сабже, и хотя я с предъявленными обвинениями CL>не согласен, захотелось поглубже разобраться в предмете. На самом деле, я CL>никогда не встречал сколько-нибудь внятных рассуждений на эту тему.
Ответ сугубо практический — если данные и интерфейс разделены, то гораздо меньше времени потребуется на доработку, если например начальник скажет "этот диалог а вот ещё добавь вывод в HTML (RTF, etc подставить по вкусу)". Или если поменяется дизайн/концепция интерфейса и пр.
Re[2]: Re: про смешивание кода, данных и интерфейса
1. Список в котором отображается код клиента, двоеточие, имя клиента. И при любом действии над клиентом берется выделенная строка и парситься для получения кода.
2. Stateless диалог — чисто картинка, узнать о текущем состоянии нет возможности, все изменения приходят только сообщениями, а текущее состояние, вплоть до выделенных строчек сохраняется в модели.
В первом варианте кода немного меньше, но вместо того чтобы что-то менять — проще выкинуть, во втором кода больше (databinding немного улучшает ситуацию), менять проше, сложную логику и runtime валидацию осуществлять проще.
-- Главное про деструктор копирования не забыть --
Здравствуйте, cr lf, Вы писали:
CL>вот тут кое-кто обвинил меня в сабже, и хотя я с предъявленными обвинениями CL>не согласен, захотелось поглубже разобраться в предмете. На самом деле, я CL>никогда не встречал сколько-нибудь внятных рассуждений на эту тему. CL>Может кто поделится ссылками, а лучше ссылкой, а еще лучше текстом, где CL>четко и не двусмысленно описывается данная концепция с примерами кода.
Есть основополагающие принципы ООП проектирования. Их просто необходимо знать любому программисту. На этих принципах построено масса паттернов (не только MVC). Почитать шаблоны проектирования GoF и обязательно Роберта К. Мартина. У Мартина есть принципы проектирования и применение паттернов проектирования на реальных проектах.
Но еще на мой взгляд (и не только) — главное это изменения. Т.е. нужно ловить ось изменения и оптимизировать работу по этой оси. И еще "правило трех ударов" Кеннета Бека.
Здравствуйте, cr lf, Вы писали:
CL>Может кто поделится ссылками, а лучше ссылкой, а еще лучше текстом, где CL>четко и не двусмысленно описывается данная концепция с примерами кода.
Местные статьи по теме: Model-View-Controller в .NET