Hiển thị các bài đăng có nhãn MVP. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn MVP. Hiển thị tất cả bài đăng

Thứ Năm, 26 tháng 2, 2015

Mô hình MVP (Model - View - Presenter) C#

Mô hình MVP là gì vui lòng tham khảo: The Model-View-Presenter (MVP) Pattern

Demo mô hình MVP trong Windows Forms



Student Model:

    public class Student
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string IdentityCardNumber { get; set; }
    }
 
 
Interface Add New Student
 
    public interface IAddStudent
    {
        string FirstName { get; set; }
        string LastName { get; set; }
        string IdentityCardNumber { get; set; }

        string Message { get; set; }
    }
 
View Add New Student:

 
Code Behind:
 
    public partial class AddStudent : Form, IAddStudent
    {
        public AddStudent()
        {
            InitializeComponent();
        }

        public string FirstName
        {
            get
            {
                return txtFirstName.Text;
            }
            set
            {
                txtFirstName.Text = value;
            }
        }

        public string LastName
        {
            get
            {
                return txtLastName.Text;
            }
            set
            {
                txtLastName.Text = value;
            }
        }

        public string IdentityCardNumber
        {
            get
            {
                return txtIdentityCardNumber.Text;
            }
            set
            {
                txtIdentityCardNumber.Text = value;
            }
        }

        private string _message;
        public string Message
        {
            get
            {
                return _message;
            }
            set
            {
                _message = value;
                MessageBox.Show(_message);
            }
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            StudentPresenter pre = new StudentPresenter(this);
            pre.AddStudent();
        }

    }
 
Student Presenter
 
    class StudentPresenter
    {
        IAddStudent addStudentView;

        public StudentPresenter(IAddStudent addStudentView)
        {
            this.addStudentView = addStudentView;
        }

        public bool AddStudent()
        {
            Student student = new Student();
            student.FirstName = addStudentView.FirstName;
            student.LastName = addStudentView.LastName;
            student.IdentityCardNumber = addStudentView.IdentityCardNumber;

            addStudentView.Message = string.Format("Thêm má»›i thành công sinh viên: {0} {1}", student.FirstName, student.LastName);
            //insert into db
            return true;
        }
    }

Test thử: