ModelViewController

Naf
Дата: 14.11.2007 13:46:32
Пытаюсь реализовать в своем проекте архитектуру Model-view-controller следующим образом.
1. Модель - собственно логика приложения. Для простоты пусть будет класс TModel. В качестве интерфейса для связи с внешним миром он имеет методы, свойства и события, которые вызываются, когда модель меняет свое состояние.
2. Представление. Абстрактный класс, от которого наследуются реальные классы, призванные управлять виджетами. Например наследники для Win32 или Web. Также представление имеет методы для управления им и события, возникающие при его изменении (например юзер выбрал пункт меню).
3. Контроллер, связывающее звено. Имеет ссылки на модель и на представление, в свою очередь имеет кучу методов, подписанных на события как модели так и представления.

Как все планируется организовать: Пользователь нажимает например кнопку -> представление вызывает некое событие, на которое подписался контроллер -> контроллер вызывает метод модели (изменяем ее) -> модель меняется и вызывает при этом событие, на которое, опять таки, подписался контроллер -> контроллер вызывает метод на изменения (перерисовки) представления

Что пугает:
1. Контроллер вынужден иметь огромное количество методов-подписчиков на события как модели так и представления. Причем желательно не запутаться в парах: событие которое вызывается от представления НаДействиеПользователяОткрытиеБазы() и от модели ПриОткрытиеБазы()

2. Конкретное представление (например для Win32) будет инкапсулировать форму, которая знать не знает о представлении, придется представлению подписываться на ее события, что опять большой ручной код при создании этой формы, распухает тело метода.

Прошу высказать ваши мнения по-поводу этих страхов и (или) высказать о своем опыте в данной архитектуре
grexhide
Дата: 14.11.2007 14:09:06
Naf
высказать о своем опыте в данной архитектуре

Всё понимаю, но при чём тут Delphi?
Мы все тут, как известно, или быдлокодеры, или циничные практики с ГСМ уклоном.

А с такими вселенскими идеями - тебе вона лучше к яверам податься или к дотнетчика. Ужо там тебя обограеют и присоветую, как забацать правильную (мда....) архитектуру чего то там.

А у нас то что? Компонентик бы какой найти, и отлично.

///

К слову - вопрос твой какой то глупый и бессмысленный, как и вся, впрочем, новомода. Меньше читай
всякой дури из журналов, тогда глядишь и попустит.

//

Для сильно страждущих. TQuery + TDataSource + TDBGrid это и есть в чистейшем виде MVC. Бери и слизывай.
Naf
Дата: 14.11.2007 14:24:17
grexhide

Для сильно страждущих. TQuery + TDataSource + TDBGrid это и есть в чистейшем виде MVC. Бери и слизывай.


Все бы хорошо, да пишется framework а-ля 1С, только с применением ООП клиент-сервера. Предполагается быть независимым от СУБД. Но т.к. доступ с разным СУБД разный, да и SQL диалекты у каждого свои, то в модели вынесен абстрактный слой доступа к данным и от него наследуется конкретная реализация для Firebird, MSSQL Server...
Конкретно сейчас воплощается а-ля Конфигуратор - средство разработки для данного framework.
RENaissance
Дата: 14.11.2007 14:29:34
Naf

Все бы хорошо, да пишется framework а-ля 1С, только с применением ООП клиент-сервера. Предполагается быть независимым от СУБД.

И это будет очередной тормозной велосипед с квадратными колесами... Спрашивается, нафига это надо?!

З.Ы IMHO конечно.

Posted via ActualForum NNTP Server 1.4

Naf
Дата: 14.11.2007 14:33:03
RENaissance
Naf

Все бы хорошо, да пишется framework а-ля 1С, только с применением ООП клиент-сервера. Предполагается быть независимым от СУБД.

И это будет очередной тормозной велосипед с квадратными колесами... Спрашивается, нафига это надо?!

З.Ы IMHO конечно.

Posted via ActualForum NNTP Server 1.4


1. Работая с 1С довольно долго, стал все больше и больше мечтать о прекрасном. Тем более что-то из этого есть в Axapta
2. Альтернатива 1С, разве это не прекрасно?
3. Заодно чему нить выучусь, например уже знакомлюсь с парадигмами программирования и UML. Дабы в грязи 1С не утонуть
4. Я от этого прусь
grexhide
Дата: 14.11.2007 14:38:51
Naf
1. Работая с 1С довольно долго, стал все больше и больше мечтать о прекрасном. Тем более что-то из этого есть в Axapta

Ну и работай в них, зачем пытаться в Delphi горбатить эти уродства?
Что русскому хорошо, то немцу смерть.

Naf
2. Альтернатива 1С, разве это не прекрасно?

1С и вся система около, над и под ERP - это не технологии. Это механизмы выколачивания денег из
доверчивых идиотов под видом сети франчайзи и партнеров по внедрению.
Внедрять же там похрен что.

Naf
3. Заодно чему нить выучусь, например уже знакомлюсь с парадигмами программирования и UML. Дабы в грязи 1С не утонуть

Тебе прямиком в Java. Учить будшь много и плотно, и что самое главное - каждый год - какую то новую херь, которая умрет в следующем году.

Naf
4. Я от этого прусь

Мсье кодеман?

--

Короче, ещё раз. Ты ошибся форумом. Тут такие идосинкразизмы, как MVC по образу подобию - как
минимум не популярны. Совсем иного порядка кашерность и православие исповедуем.

MVC считаем ересью, так что.... не убедишь (даже Borland со своим чудо ECO не смогла, куда уж
тебе со своей наколенкой).
RENaissance
Дата: 14.11.2007 14:39:20
Naf

2. Альтернатива 1С, разве это не прекрасно?

У меня есть большие сомнения, что Вы сможете написать вменяемую альтернативу 1С.

З.Ы Но если Вам хочется переться, то пишите, но знаний Вы не приобретете. Только время потратите впустую.
З.З.Ы Особенно меня улыбнула фраза - "система, не привязанная к конкретной СУБД"...это утопия.

Posted via ActualForum NNTP Server 1.4

grexhide
Дата: 14.11.2007 14:44:38
RENaissance
Особенно меня улыбнула фраза - "система, не привязанная к конкретной СУБД"...это утопия.

+1

Воистину дурь
ssw
Дата: 14.11.2007 15:30:05

>Особенно меня улыбнула фраза - "система, не привязанная к конкретной СУБД"...это утопия.

Не ну почему же...
Конечно написание кроссСУБД системы это доволно трудоемкое дело.
Скорее всего придется иметь одельный СУБД-зависимый уровень (как минимум).

Но желание не быть сильно привязанным к конкретной СУБД, часто помогает писать более качественное приложение с хорошим
разограничением ответсвенности по подсистемам.

В далнейшем при необходимости порта (если до этого дойдёт), то переписывать придётся минимум.

PS. Плох тот программист, который ниразу не садится за написание своей 1C (с мой)

Posted via ActualForum NNTP Server 1.4

Warstone
Дата: 14.11.2007 15:37:18
Вот вам утопия: На SQL с высокой колокольни... и тут-же забыть.
На конечной БД любая таблица состоит из 1-го BLOB поля размером с реальную запись и 1 ключ по порядковому номеру этого поля. Дальше строятся "процедурные" ключи, которые поддерживают этото БЛОБ... В качестве содержимого BLOB поля можно взять структуру записи dbf файлов. Для каждого мало-мальски частого запроса генерится свой ключ.

Все, если коротко: Это изнасилование СУБД, но работать будет.