Smalltalk и МОК

Легко избежать опечаток, привыкнув использовать ярлык «Control-Spacebar».

Когда вы находитесь в IDE скрипта приложений, в котором одновременно удерживаются элемент управления и пробел, вы увидите всплывающее окно со всеми классами, а затем просто выберете нужный.

9
задан mchean 28 October 2008 в 16:14
поделиться

4 ответа

MVC был изобретен на Smalltalk и является возможно исходной Инверсией платформы Управления. В то время как несколько более легкий, чем его дубликаты Java, это имеет фундаментальные понятия модели, содержащей данные, представление, представляющее данные в ответ на события propogated от контроллера.

Меньше flippantly, Java является на самом деле потребностями большая поддержка платформы, чтобы сделать веб-приложение без чрезмерных количеств шаблонного кода. Поддержки Smalltalk, программируя идиомы, такие как продолжения, которые позволяют автору притворяться, что они действительно не пишут управляемый событиями код. Побережье работает как это, принося пользу МОК с несколько более гибкой парадигмой разработки.

Править: MVC является платформой для UI в Smalltalk (возможно, это не действительно платформа как таковая, но библиотека классов создала в поддержке его). Это имеет инверсию свойства элемента управления в этом, представление и модель отвечают на события, диспетчеризированные контроллером - не звонит нам, мы назовем Вас свойством. Инверсия Управления является шаблоном разработки в платформах, это используется для сокращения потребности в обширном шаблоне в JAVA-приложениях. В некоторых определениях среды разработки приложения Инверсия Управления является основным свойством, которое просматривается как различение платформы из библиотеки.

6
ответ дан 4 December 2019 в 10:34
поделиться

Функции являются гражданами первого класса в smalltalk, таким образом, легко иметь МОК без платформы.

6
ответ дан 4 December 2019 в 10:34
поделиться

Я думаю, что МОК или шаблон Внедрения зависимости решают проблему, которая действительно не существует в среде Smalltalk. Smalltalk является невведенным динамическим языком и использует передачу сообщений для передачи. Это делает для объектов, которые слабо связываются по своей природе на уровне языка. Любой объект может отправить сообщение в другой объект без учета к типу, пока это может обработать сообщение. Так, поскольку Вы могли бы предположить, что изменяющиеся зависимости в любой момент времени являются относительно легкими и естественными. Просто должны решить, где, когда, и как Вы хотите изменить зависимость.

4
ответ дан 4 December 2019 в 10:34
поделиться

Несколько возможных причин для этого. Одна из них заключается в том, что мы не удосужились использовать квалификатор «IoC», который по существу избыточен - поскольку вызов чего-либо в среде подразумевает инверсию потока управления.

Другой - то, что язык Smalltalk обеспечивает прямую поддержку потоков «IoC». - в форме укупорки. Один из результатов программирования с замыканиями заключается в том, что поток управления, который обнаруживается в каркасах, не выглядит настолько резко отличающимся, чтобы вызвать ощущение «инверсии» от «нормального» чувства потока; скорее, с замыканиями, поток контроля перемещается взад и вперед между этими двумя перспективами все время и везде. Даже в пределах отдельных утверждений.

Третья причина, возможно, заключается в том, что даже без замыканий «инверсия контроля» описываемое не однозначно связано с фреймворками - одни и те же потоки встречаются в большинстве форм кода, которые включают ввод / вывод.

В-четвертых, Smalltalkers, вероятно, используют эти типы потоков даже больше, чем другие, так как мы в большей степени опираемся на понятия объектов и сообщений, передаваемых между ними, чем о понятиях структур и вызова функций-членов. В отсутствие замыканий эти два представления эквивалентны и взаимозаменяемы, но добавление замыканий меняет результат - одним из эффектов является смысл использования потока управления.

Наконец, можно даже подумать об описании REPL стиль потока управления как «более простой», но «перевернутый» смысл «нормального» потока, нормального в том смысле, что он используется почти везде.

Таким образом, для Smalltalk существуют те же самые виды фреймворков. Мы описываем их немного по-другому, это все. Разница, по крайней мере частично, связана с наличием и использованием замыканий в Smalltalk, которые многие другие среды пока не предоставляют - особенно C ++, C # и Java.

2
ответ дан 4 December 2019 в 10:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: