交通灯管理系统,我们想要深入的理解,那么就必须深入其中,我们可以寻找一个我们最熟悉的十字路口观察并记住车辆行驶的实际路线和可能出现的情况!
其次就是画图,在高中学习几何代数时,体会很深,画图的确有助于我们思考问题!
然后我们来看十字路,可以发现,在理想的模式下四个路口是一样的所以在我们考虑问题时,可以仅从一个路口开始考虑!
然后我们在把每一个对象明确,并且了解每个对象拥有的属性,并且把这些属性拥有的动作定义在这个对象里,实行专家模式设计!
例如:我们这个交通的仅有
一个灯对象,
和一个集合,
其中邓对象里面有三个属性,红,绿,黄;以及每个灯转换的方法
我们把马路看做一个集合,而马路上的车就是集合里的每一个元素!
怎么模拟车穿过红绿灯呢?我们这里就是才从集合中取走元素,取走一个就代表在这条路上有一个元素通过了红绿灯!
在上面我们需要四个红绿灯就new 四个对象出来
想对集合来说本来是需要十二个,但是由于对面是一样的所以我们只需要new 六个集集合
最后我就分析一个路口再什么情况下可以通车。这样我们就可以设计出简单的交通管理系统了!
银行管理系统
在现实生活中,我们去银行办理业务时,首先会有一个礼貌的保安帮我们去一张排队号,
所以我们设计银行管理系统时需要一个产生号码的类并且设计为单例
号码管理类里面需要三个产生号码的方法分别产生别且三个方法要同步锁定!
银行有很多个服务窗口,有Vip ,普通和快速等等!我们这里的系统仅有 (Vip ,普通和快速 )
三个客户服务窗口所以我们需要一个服务类
有几个服务的抽象方法,具体实现就看是什么窗口做对应的实现!
对于一个系统的设计,面向对象是非常重要的!此文疏漏太多,日后会改编,各位友友谅解!