Мой друг утверждает, что это нормально, чтобы передать модель объекта для просмотра. Но, по моему мнению, это нарушает 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;
}
};
Задача ещё не решена.