黑马程序员——学习交通灯管理系统的启发

                         ------- android培训java培训、期待与您交流! ----------

       张老师对于交通灯管理系统的讲解很详细,但是由于我是零基础自学,所以对于里面不少地方都认知的不是很透彻。于是采用自己的方式,把里面的内容分解成自己能懂的部分。

1.分析问题要善于画图,让抽象的问题具体化。

2.面向对象设计时采取的原则:谁拥有数据,谁就提供针对这些数据的操作方法。

3.在分析交通灯系统时,首先抽取其中关键要素:交通灯,路,车。三者中的车可以认为是路的“元素”,车的通过和增加都是由路负责管理的。而每一个十字路口的放行与否,都是通过交通灯控制的。路和灯可以看作两个类,他们两者应该是归属的关系,一个十字路口“拥有”一个交通灯系统。由于车辆向右是永远放行的,而相反方向的灯的变化是完全相同的,这样其实一个路口的交通等的状态就只有4种了,而且这四种同一时刻只有一个是放行的状态。

4,分析需要用到哪些方面的知识。

        首先, 所有道路上车辆对象都要封装到一个集合中,需要运用到集合中的操作方法。

          其次,在Road对象的构造方法中启动一个线程每隔一个随机的时间向vehicles集合中增加一辆车(用一个“路线名_id”形式的字符串进行表示)。这里涉及到多线程技术和匿名内部类的运用。
       另外系统中有12个方向上的灯,在程序的其他地方要根据灯的名称就可以获得对应的灯的实例对象,所以需要用到枚举。
       最后,整个系统中只能有一套交通灯控制系统,所以,LampController类最好是设计成单例,这里又运用到了单例设计模式。
                          ------- android培训 java培训 、期待与您交流! ----------
                                    详细请查看: http://edu.csdn.net/heima/  
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值