《面向对象编程的聚合实现方法.doc》由会员分享,可在线阅读,更多相关《面向对象编程的聚合实现方法.doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、闪客教育超媒体培训:www.sk-面向对象编程的聚合实现方法今天我给大家介绍的是面向对象的聚合方法,至于聚合的概念和作用这里就不作过多的介绍了。今天要个大家解决的问题是:如何把高聚合原则应用到面向对象编程中去?首先,用对象的方式编程就是对聚合性的提高。当然每个对象本身也应该有高聚合性。我们将会用三个小游戏:小行星游戏、俄罗斯方块、吃豆人游戏为例子来讨论聚合原则的实现方法。例1、小行星游戏:如果我们在一段代码里把三个行为都写在一起,就会显得很混乱。所以我们应该把每个行为都分开用函数来定义。函数可以分离功能,把相关的代码组合在一起,创建高聚合的程序。语言代码如下:/* 飞船类*/public cl
2、ass Ship /* * 函数 执行旋转飞船的行为(任务) */ public void rotate() / 旋转飞船的代码 /* *函数执行移动飞船的行为(任务) */ public void move() /移动飞船的代码 /* *函数执行移动飞船开火射击的行为(任务) */ public void fire() /飞船发射子弹的代码 大家可以看到,每个行为都有一个函数,而程序代码在这个简略结构里被很好的组织起来了。例2、俄罗斯方块:俄罗斯方块这个对象具有下落,左右移动,旋转三个行为。基本的类结构如下:/* 俄罗斯方块游戏类*/public class Tetromino /* * 函
3、数 更新方块的位置 */ public void fall() /更新方块位置的代码 /* *函数 左右移动方块 */ public void move() /左右移动方块的代码 /* *函数 旋转方块 */ public void rotate() /旋转方块的代码 同样的,对象的行为都被分到各自的函数。你可能注意到了,“下落”这个方法执行的是“更新方块的位置”。这是因为下落的行为是一直在持续发生的,而不是一次性触发的,所以我们不能只执行“让方块下落”这样的任务。下落的方块每次向下移动一定的位移量,所以我们通过更新方块的位置来反映下落速度。例3、吃人豆:“鬼”这个对象有移动和改变状态两种行为
4、,对它我们还要增加一些东西来实现高聚合。/* “鬼”的类*/public class Ghost /* * 函数 移动鬼 */ public void move() / 鬼以当前方向移动的代码 /* *函数- 改变鬼的方向 */ public void changeDirection() /改变鬼方向的代码 /* *函数- 改变鬼的速度 */ public void changeSpeed() /改变鬼速度的代码 /* *函数- 改变鬼的颜色 */ public void changeColor() /改变鬼颜色的代码 /* *函数- 改变鬼的状态 */ public void changeS
5、tate() /改变鬼状态的代码 /这个函数会调用其他三个函数:改变鬼的方向,改变鬼的速度,改变鬼的颜色 更改鬼的状态额外增加了三个函数: 改变方向,改变颜色,改变速度。这三个函数不在我们开始的行为列表里,因为它们其实不是对象的行为。这些函数被称为“辅助函数”,它们有助于程序维持高聚合。鬼改变状态(当吃豆人吃到超能豆的时候)这一行为需要执行三个任务:变成蓝色,调转方向,移动变慢。要维持高聚合,所以我们就不要把三个任务放在同一个函数里。我们把它们分到三个子函数里,最后在一个主函数里统一调用。总之,聚合原则就是要把相关的代码组织在一起,执行单一的任务。聚合帮助我们创建可维护的,可重用的代码。闪客教育超媒体培训:www.sk-