面向对象编程的聚合实现方法.doc_第1页
面向对象编程的聚合实现方法.doc_第2页
面向对象编程的聚合实现方法.doc_第3页
面向对象编程的聚合实现方法.doc_第4页
面向对象编程的聚合实现方法.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论