分析一个典型的C# PROJECT MVC示例

来源:互联网 发布:仓库管理数据流程图 编辑:程序博客网 时间:2024/05/21 10:39

代码下载

这是一个交通工具的C# Project,架构上采用了MVC模式,在这里主要体现了MVC这种模式的优势在于可以替换和扩展任何一个层。

方向的枚举类型存放在Enums文件中,其中定义了东西南北四个绝对的方向和左右后退三个相对的方向。

Model:

IVehicleModel交通工具模块接口,这个接口抽象了全部交通工具的公共方法“加速”、“减速”、“转向”。拥有的属性是“当前方向”,“最大后退速度”,“最大前进速度”、“最大速度”,“最大转弯速度”、“交通工具名称”、“当前的速度”。

Model使用了观查者模式来更新VIEW,对全部的交通工具的View模型进行统一的处理,这样就可以在一个Model发生更改后通知所有使用它的View进行更新操作,这里的方法有“增加被观察者”、“移除被观察者”、“通报被观察者”。当交通工具的加速减速转转向等一经调用,则即刻改变了模型的状态,改变状态后必须调用通报被观察者来更新全部的VIEW。

Automobile 这是一个汽车的抽象模型,继承自IVehicleModel接口,实现了汽车所普遍拥有的方法。

ACME2000SportsCar这是一个非常COOL的跑车,它有一些东西与普通的车是不一样的,因为他是跑车所以在最高时速,最大的转弯速度都高于普通车。

View:

IVehicleView交通工具显示和操作界面的接口,所有的Vehicle显示界面和操作界面都要继承自这个View,它的功能是显示和提供操作VehicleModel,改变它的状态。主要方法有:“禁用加速”、“启用加速”、“禁用减速”、“启用减速”、“禁用转弯”、“启用转弯”、“更新信息”。

Controler:

IVehicleControl交通工具操作Model和View的控制接口,它只是负责根据View的请求交由Model来处理,并且将Model来返回给相应的View显示。它的主要方法有是“请求加速”、“请求减速”、“请求转弯”、“设置Model”、“设置View”。

工作流程是模拟一部正在跑的车,可以增加或降低速度,增加或降低的步长可以设定,同时会更新进度条显示当前的速度,类似于一个时速表,当速度增加到一定最大拐弯的值时就不能再拐弯了,拐弯的按钮会变禁用,否则可以随时向左向右拐弯,它会相应的告诉你正在向哪个方向前进。