如何在这种情况下打破逻辑并避免耦合

时间:2011-08-21 20:28:58

标签: ruby-on-rails ruby

我有一个项目审查系统,人们对项目进行投票 用户界面还显示他们如何投票,上/下。 用户在投票时可以获得积分。 他们投票的项目对象必须反映选民的数量和其他统计数据。

所以这里有很多事情发生,就像之前有人投票一样,我必须改变他们的投票,然后更新他们的统计数据和投票对象的统计数据。

我怎样才能打破这些不同的任务,因为它们似乎彼此高度耦合并且I cant' figure out a way how to avoid having my code have all these different interactions mixed together.

示例方法:

Set_Vote

1. is this an old vote?
 -> if old vote, change old vote to new vote value
 -> otherwise, insert new vote

2. update user stats
3. update item voted on stats
4. return a json response to the UI with information to update the screen via ajax etc.

现在看起来很容易解开,直到你开始编码。例如,我不能真正设置用户统计信息,除非我知道#1逻辑的结果,因为如果它是一个旧的投票,我必须扭转先前发生的事情,然后应用新值(与#3相同) )。

#1中的方法是否应该有一个非常丰富的返回对象,告诉我像1)这是一个旧的投票,或者它不是?投票的结果是什么? (也许投票在我的逻辑中因任何原因被拒绝了。)

0 个答案:

没有答案