Saya telah membaca tentang MVP, khususnya Supervising Controller. Satu hal yang saya mengalami kesulitan membungkus kepala saya adalah bagaimana Lihat berinteraksi dengan Model.
Menurut pemahaman saya, Presenter harus memperbarui Model dan bahwa Tampilan dibaca dari Model. Presenter juga dapat memperbarui tampilan melalui antarmuka. Artikel Martin Fowler tentang ini tampaknya menunjukkan hal itu ( http://martinfowler.com/eaaDev/SupervisingPresenter.html ).
Namun, artikel / blog lain memperlihatkan pandangan memperbarui model secara langsung ( https://blogs.msdn.microsoft.com/erwinvandervalk/2009/08/14/the-difference-between-model-view-viewmodel-and-other- pola presentasi terpisah / ).
Saya tahu ini hanya pola sehingga akan ada implementasi yang berbeda, tetapi pandangan memperbarui model sepertinya melakukan lebih dari yang seharusnya.
Katakanlah misalnya saya punya kelas orang yang berisi nama dan nomor telepon. Tampilan dapat menampilkan nama dan nomor ini dan tombol kirim untuk mengubah nama dan nomor orang tersebut. Ketika tombol kirim diklik saya akan mengharapkan pembaruan akan ditangani di Presenter bukan View. Namun, artikel yang saya referensikan mengusulkan agar tampilan dapat langsung memperbarui model.
Jadi, haruskah tampilan memperbarui model? Atau haruskah itu hanya ditangani oleh Presenter?
EDIT:
Kode dari artikel MSDN:
public class PersonalDataView : UserControl, IPersonalDataView
{
protected TextBox _firstNameTextBox;
public void SetPersonalData(PersonalData data)
{
_firstNameTextBox.Value = data.FirstName;
}
public void UpdatePersonalData(PersonalData data)
{
data.FirstName = _firstNameTextBox.Value;
}
}