Implement State of View
平時寫介面(GUI), 通常會寫一個 method 叫 StateChange 黎處理所有介面上既所有 visible 同 enable 既動作. 而自己會因介面既設計而定義一個 private enum 既 State, 所有 state 由一個 method 做晒.
private enum State
{
Add,
Update
}
private void StateChange(State eState)
{
if (eState == State .Add)
{
txtId.Visible = true;
lblId.Visible = false;
lblMode.Text = "[Add New]";
}
if (eState == State .Update)
{
txtId.Visible = false;
lblId.Visible = true;
lblMode.Text = "[Update]";
}
}
而我自己寫過既 State 都有幾隻:
同一版有個所有 Item 既 List 而 Edit box 得 Add 同 Update
private enum State
{
Add,
Update
}
一版得主要係用黎 Insert 既:
private enum State
{
WaitingSave,
WaitingConfirm // for double confirm
}
同埋得睇同改既:
private enum State
{
Normal,
Edit // for add and update
}
仲有好多其他既 State 寫過, 不過都太過多同太專門, 所以應該係按照實際用途而加.
網上曾經見過有人用 State object 同 State Pattern 黎做, 對我而言好似用係 GUI 方面未必真係有咁既需要, 但對一個 domain object 而言就最好有 State object, 咁樣會對個 design 好好多.
Tags: c#

