zoukankan      html  css  js  c++  java
  • MVP simple example

    • I like to keep views decoupled or unaware of the presenters, hence Views communicate to the presenter by raising events. This eliminates the need for the view to have a reference to the presenter. Keep Views thin and dumb.
    • The presenter on the other hand has a member reference to the view (and the model) usually. Hence it can talk to the view by making method calls via an interface (permits views to be substituted as long as they conform to the IView interface). e.g. In your case, Set_X_Option(eOptionEnum) would be a member of the IView Interface, which the presenter can then invoke appropriately.

    Refer from http://stackoverflow.com/questions/246028/mvp-events-or-property

    public interface ICurrentTimeView {
        DateTime CurrentTime { set; }
    }
    
    public class CurrentTimePresenter {
        public CurrentTimePresenter(ICurrentTimeView view) {
            if (view == null)
                throw new ArgumentNullException("view may not be null");
    
            this.view = view;
        }
    
        public void InitView() {
            view.CurrentTime = DateTime.Now;
        }
    
        private ICurrentTimeView view;
    }
    
    public partial class ShowMeTheTime : Page, ICurrentTimeView {
        protected void Page_Load(object sender, EventArgs e) {
            CurrentTimePresenter presenter = new CurrentTimePresenter(this);
            presenter.InitView();
        }
    
        public DateTime CurrentTime {
            set { lblCurrentTime.Text = value.ToString(); }
        }
    }
    <asp:Label id="lblCurrentTime" runat="server" /
    
    
  • 相关阅读:
    杀毒软件工作原理
    IP地址
    网络操作系统功能和基本任务
    计算机网络技术知识点总结
    对称密钥密码体制的主要特点
    无线局域网(WLAN)
    文件传输协议(FTP)
    万维网(WWW)
    简单网络管理协议(SNMP)
    防火墙技术
  • 原文地址:https://www.cnblogs.com/webglcn/p/2735424.html
Copyright © 2011-2022 走看看