C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十二)重构 – 让代码插上翅膀自由飞翔
2010-09-30 20:49:35 来源:WEB开发网上一节,我将游戏地图模式进行了一次重大的变动,这在实际开发中意味着项目大规模重置,虽然表面上显得游刃有余,仅仅一个AllMove()方法的改变即实现了完美转型,这全得归功于前20节所搭建起的相对高度可扩展平台。但是,随着开发不断深入,我慢慢的感到些许的不安,因为代码上的日益松散与结构的渐渐稀疏如同Windows系统的磁盘碎片与日俱增,未来维护时的烦琐与痛心疾首已历历在目。代码向我发出了求救信号,用什么来拯救你-我的代码?是时候亮剑了 –- 我的第一次亲密重构。
下面我将分几点对上一节中的代码进行重构:
一、统一化代码格式,让代码可读性发挥到极至:
我以上一节中创建地图地表层的代码为例:
private void InitMapSurface() {
MapSurface.Width = 1750;
MapSurface.Height = 1440;
MapSurface.Source = BitmapFrame.Create((new Uri(@http://tech.ddvip.com/2009-07/"Map.jpg", UriKind.Relative)));
Carrier.Children.Add(MapSurface);
Canvas.SetLeft(MapSurface, -320);
Canvas.SetTop(MapSurface, -200);
MapSurface.SetValue(Canvas.ZIndexProperty, -1);
}
大家先看InitMap()方法中的前3行代码,它们均以MapSurface打头进行赋值书写;接着看倒数2、3行,却又是以Canvas.Set…()模式来设置MapSurface的属性;更可怕的是最后一行,明明可以写成Canvas.SetZIndex(…)的形式,好歹也与它前面两行凑合凑合,可是这个作者赶着写项目,五花八门的写法都出来了。尽管,这达到实现功能的要求;可是仅仅不上十行的代码可读性已达到了“神出鬼没”的地步,你是否曾想过如此类似的代码一旦多起来,除了你,还有谁能进行维护?上帝知道。
Tags:开发 WPF Silverlight
编辑录入:爽爽 [复制链接] [打 印]- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››WPF学习笔记12. Binding (5)
- ››WPF学习笔记11. Binding (4)
- ››WPF学习笔记10. Binding (3)
- ››WPF学习笔记9. Binding (2)
- ››WPF学习笔记8. Binding
- ››WPF学习笔记7. Resource
- ››WPF学习笔记6. RoutedEvent
- ››WPF学习笔记5. DependencyProperty
- ››WPF学习笔记3. Navigation
- ››WPF学习笔记之2. Dispatcher
- ››WPF学习笔记之1. Application
更多精彩
赞助商链接