Как передать данные между контроллером представления модели в C ++, реализуя архитектуру MVC?

Мой друг утверждает, что это нормально, чтобы передать модель объекта для просмотра. Но, по моему мнению, это нарушает MVC arch, потому что если view получает модель obj, то он знает о существовании класса модели. И класс obj in view может использоваться для манипулирования классом модели.

какая версия верна в соответствии с архитектурой MVC? если нет, то предложите решение и объясните, как реализовать MVC в C ++.
Большое спасибо. 🙂 🙂

***********              //version 1                ****************
class model
{
int rollNO; string name;
public:
void saveToDataBase()
{
name=//save to data base
rollNo=//save to data base
}
void fetchFromDataBase()
{
name=//get from data base
rollNo=//get from data base
}
};

class controller
{
model m, *pm;
view v;
v.getData(*pm);
pm->saveToDataBase();
m.fetchFromDataBase();
v.showData(m);
};class view
{
getData(model *pm)
{
cin>>pm->rollNo;
cin>>pm->name;
}
showData(model m)
{
cout<<m.rollNo;
cout<<m.name;
}
};*****************        //version 2        **************************
class model
{
int rollNO; string name;
public:
void saveToDataBase()
{
name=//save to data base
rollNo=//save to data base
}
void fetchFromDataBase()
{
name=//get from data base
rollNo=//get from data base
}
};class controller
{
model m1,m2;
view v;
m1.name=v.getName();
m1.rollNo=v.getRollNo();
m1.saveToDataBase();
m2.fetchFromDataBase();
v.showName(m2.name);
v.showRollNo(m2.rollNo);
};

class view
{
void getName()
{
cin>>name;
return name;
}
void getRollNo()
{
cin>>rollNo;
retun rollNo;
}
void showName(string name)
{
cout<<name;
}
void showRollNo(int rollNo)
{
cout<<rollNo;
}
};

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector