A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1、在定义Road类时,用来存储车辆的List集合vechicles(张老师单词都打错了,还在视频最后说自己英语不错,汗!哈哈)最好用LinkedList集合,一方面,这个程序中只需要的是增删操作,使用LinkedList集合效率高。另一方面,使用LinkedList集合的话也更加贴近于现实情况,试想,车开上一条路的时候相当于进入了一个先进先出的队列,这样,当增删元素的时候可以从这个队列的头部删,尾部增,这是相当符合现实生活中的逻辑的。
2、交通灯控制器感觉设计成单例好一些,因为,这个控制器只允许有一个的。
3、这个程序中的变量名和方法名的设计阅读性比较差。比如:lighted对应的灯变绿,blackOut对应着灯变红,从字面意思来看,很难看出两个函数的功能。交通灯只有绿和红两种颜色,当然可以将其状态设置为Boolean型,但是用来指示交通灯状态的boolean型变量的名字可以设计为isGreen;用来判断交通灯状态的方法名也可以设计为isGreen(); 。当交通灯变绿时可以设计为Red2Green,当交通灯变红时,可以设计为Green2Red,这样感觉代码的阅读性很好,不容易产生思维卡顿。

1 个回复

倒序浏览
童鞋你说得很好,也很对。
老实说我是没像你这么细的去思考。时间限制。

首先要保证功能实现,功能实现后再去追求性能、简洁。
张老师在有限的时间内做出这个,已经很了不起了。
优化也不简单,需要对代码有充分了解,优化出了问题,还不如不优化呢。
优化有成本。有些时候,有些东西,不是不知道能优化,不是不知道能怎么优化,而是不值得优化。
比如这个交通灯,它的要点是逻辑,逻辑清楚了功能实现很容易。
而ArrayList换为LinkedList,优化的收益值得你去这么改吗?
如果做图形界面,需要在车道上显示车呢?

在此方面,我是秉承good enough原则。只有当一个东西完全明白了,我才会在实际项目中使用。


一点个人经验,未必对,供参考。:)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马