程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#實現MVC模式的簡要方法(3)

C#實現MVC模式的簡要方法(3)

編輯:關於C語言

下一個部分比較巧妙。我們希望VIEw知道Model中的變化。為了達到這個目的,我們使用觀察者模式。

開始

作為總是想的遠一點的開發人員,我們想讓我們的系統有一個長久並且良好的生命周期。這就是說能夠進可能的准備好滿足ACME的很多變化。為了做到這一點,我們知道要遵循兩條原則...“保證你的類低耦合”,要達到這個目標,還要“對接口編程”。

所以我們要做三個接口(正如你所猜測,一個Model接口,一個VIEw接口,一個Control接口)。

經過很多調查研究,和與ACME人的費力咨詢,我們得到了很多有關詳細設計的信息。我們想確定我們可以設置的最大速度在前進,後退和轉彎中。我們也需要能夠加速,減速,左轉和右轉。我們的儀表盤必須顯示當前的速度和方向。

實現所有這些需求是非常苛刻的,但是我們確信我們能夠做到...

首先,我們考慮一下基本的項目。我們需要一些東西來表示方向和轉動請求。我們做了兩個枚舉類型:

AbsoluteDirection 和 RelativeDirection。

public enum AbsoluteDirection
{
North=0, East, South, West
}
public enum RelativeDirection
{
Right, Left, Back
}

下面來解決Control接口。我們知道Control需要將請求傳遞給Model,這些請求包括:Accelerate, Decelerate,和 Turn。我們建立一個IVehicleControl接口,並加入適當的方法。

public interface IVehicleControl
{
void Accelerate(int paramAmount);
void Decelerate(int paramAmount);
void Turn(RelativeDirection paramDirection);
}

現在我們來整理Model接口。我們需要知道汽車的名字,速度,最大速度,最大倒退速度,最大轉彎速度和方向。

我們也需要加速,減速,轉彎的函數。

public interface IVehicleModel
{
string Name{ get; set;}
int Speed{ get; set;}
int MaxSpeed{ get;}
int MaxTurnSpeed{ get;}
int MaxReverseSpeed { get;}
AbsoluteDirection Direction{get; set;}
void Turn(RelativeDirection paramDirection);
void Accelerate(int paramAmount);
void Decelerate(int paramAmount);
}

最後,我們來整理View接口。我們知道VIEw需要暴露出Control的一些機能,比如允許或禁止加速,減速和轉彎申請。

public interface IVehicleVIEw
{
void DisableAcceleration();
void EnableAcceleration();
void DisableDeceleration();
void EnableDeceleration();
void DisableTurning();
void EnableTurning();
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved