wpfsilverlight:C#开发WPF/Silverlight动画及游戏系列教程(Game Course):( 2十 2)重构 – 让代码插上翅膀自由飞翔来源: 发布时间:星期三, 2009年9月2日 浏览:123次 评论:0
3、取其精华去掉糟粕让代码质量得到质飞跃: 在WPF/Silverlight中大家是否有发现个比较古怪情况每个Control控件都有这样两个属性:x:Name和Name它们区别到底在哪?我可以谨慎告诉大家其实使用起来两者效果是模样例如我设置x:Name=”A”或设置Name=”A”在Behind代码中两种方式均可以将”A”值识别这可头大了难道MS在搞飞机?其实区别仅仅是上帝创造先后问题这对于绝大多数人来说毫无意义因此我们可以将的归纳到重复属性范畴其他类似情况在WPF/Silverlight中还有很多连带头老大哥都这样龌龊我们开发中出现类似情况也算情有可原所以在重构时我们还需要对所有属性进行理性审视是否有重复是否有不合理是否有没用到却还凳在那这些统统得回炉再造惟有如此才能给扩展提供更便利支持同样我以个活生生例子给大家讲解 是否还记得上节中要实现9区域主角移动首先得定义WindowCenterX和WindowCenterY这两个变量然后通过让它俩参和到范围判断中从而得到主角当前所处区域但是大家有没想过如果游戏窗口尺寸是可变为了兼容前面实现功能每次窗口尺寸改变(如拖动边缘、最大化、窗口化等)时我们都得重新设置WindowCenterX和WindowCenterY这两个值不但增加了代码量而且毫无扩展性而言这是相当糟糕因此我使用游戏窗口现有变量:ActualWidth和ActualHeight来取代WindowCenterX和WindowCenterY即ActualWidth /2=WindowCenterXActualHeight/2=WindowCenterY然后替换掉全部其他所有到WindowCenterX和WindowCenterY地方结果是我们不论如何调整窗体尺寸都不需要再更改任何代码ActualWidth和ActualHeight就好比心有灵犀得力助手为您提供时时游戏窗口实际宽度和高度 当然重构方式还有很多很多但是它们最终目都只有个:让代码插上翅膀自由飞翔可以这么说本节代码在保证前节功能不变前提下我对其进行了大幅度代码重构不仅优化结构更可贵是将整个架构提升到极具拓展性高度当然嘴上说没有点价值事实将胜于雄辩:下节我将给您演示短短十几行代码轻松实现WPF下窗口及其内部所有对象任意缩放完美比拟MMORPG中全屏和窗口模式切换敬请关注 编缉推荐阅读以下文章
上页1234567="current">8 最近更新最后刷新时间:2009-08-11 15:00:16
最新资讯
专题推荐
有关我们 | 联系我们 | 版权申明 | 广告服务 | 网站WebSite律师 | 报告 | 免责条款 Copyright © 2002 - 2009 ddvip All Rights Reserved 版权所有 0
相关文章
读者评论发表评论 |