假设需要我们分工合作设计一个程序,我们应该如何遵照面向对象思想来进行编程
假设我们现在需要设计一个系统,场景如下
例如:我是一个会员,我需要完成会员类的功能
首先,会员可以发起投票,投票需要审核,审核通过之后才能发布,发布完成后更新剩余投票次数,那么这中间就涉及到了三个类,会员类和客服人员类和投票类,
然后我们来分析这一个过程中各个类用到的功能,
会员类:发起投票,更新剩余投票次数
客服人员:审核投票
投票类:发布投票
当会员触发前端投票事件后,则调用会员类中的发起投票方法,然后传递参数调用客服人员类中的审核投票方法,客服人员审核通过后,返回一个参数给会员类告知审核通过,再传递一个参数给投票类调用发布投票方法,发布方法最后再返回一个参数给会员类调用更新剩余投票次数方法。
在我们一般的思路中,当投票类的方法发布成功之后,其实完成可以将更新剩余投票次数也写在其中一起完成,这是非常简单的事情,也不需要这样互相的调用来调用去。但是在面向对象思想中,每个类的事情要由自己来操作完成,自己的属性自己操作,避免了别的类直接操做另一个类的数据,这样当我们修改功能时,就不会影响其它的部分,也就是我们常说的封装。
所以我们在设计的时候,如果遇到完成某件事情需要其他人员的帮助,或者需要更改其他人员的数据,并不需要我们自己来动手,而是尽量通过发个消息的方式来进行通知,至于别人要如何实现则不处在我们的管理范围之内。
在分工合作的时候,我们只需要确定需求,即通过确定我们需要参与哪些事件即可确定我们需要编写什么功能,这样组合在一起的时候才不容易出错