為了讓View部分可以測試,我們使用interface來分離View和業務邏輯的耦合。
我的問題是:
Q:對于在aspx.design.cs中聲明的控件,我們也需要在interface中聲明嗎?如果要聲明,那麼在aspx.design.cs中的控件聲明是不是就是interface的實作?
我們不能在interface直接聲明跟aspx.design.cs控件同名的變量,我們應該認為aspx.design.cs中的控件就是view的一部分,我們無法控制。我們能做的是在interface中聲明一個跟控件同類型的變量,然後在presenter中初始化這個變量,再把這個變量指派給控件。我們也可以聲明一些給控件屬性指派的變量在interface裡面,比如如果我們需要給一個DataGrid提供一個List作為資料源,我們隻需要在interface中聲明一個List,然後在aspx.cs中實作就可以了。