Господа, если кому не сложно в двух словах : описать архитектуру документ/вид, а то в сети одни скиншоты VC.
Пытался смотреть студийного MFC-мастера код. Вопросы:
1.Сложилось мнение, что и Документ и Вид там прекрасно друг о друге
2.Как взаимодействуют Документ и Вид: напрямую дёргают методы друг друга или посылают команду ?
3.Если посылают команды, то как: в коде или через систему сообщениями ?
4.Есть скажем, такие логические части системы: данные на диске, логика работы с ними и гуй. Кто из них документ?
5.Для пробы реализовал такую систему: слой логики общается с гуем только через интерфейс с одними статическими методами (см. ниже пример). А гуй командует логикой через интерфейс, посылая ему команды. Это хорошее решение или нет? Пример:
//логика влияет на гуй через это
class IGui{
static void InitMainWnd();
static void ShowChannel(<...>);
static bool IsChannelVisible(<...>);
<...>
};
//гуй влияет на логику имея указатель интерфейс:
enum LogicCommand{
LC_SHOW_CHANNEL
<...>
};
struct ILogic{
virtual void OnCommand(LogicCommand cmd) = 0;
};
6.Должны ли объекты документ и вид существовать в качестве глобальных статических ?
Здравствуйте, shvonder, Вы писали:
skip
На собственном опыте могу тебе сказать, что лучше эту архитектуру не использовать (по крайней мере, ее MFC-шную реализацию).
Слишком тесно документ и вид друг на друга завязаны.
Лучше уж
MVC. Правда, ее MFC не поддерживает (DocView, конечно, частный случай MVC. Но слишком ограниченный). Зато ты сможешь реализовать ее как тебе угодно, а не как программисты из M$ решили.