我如何重构质量if-else语句?
我该如何对质量进行重新处理?我的应用程序中有很多大型IF-ELSE语句,我需要重构所有这些代码还是只保留它?
if (up > 80 && up < 140)
{
if (distance)
{
go.transform.position = go2.transform.position;
}
go.transform.Translate(y, 0, x);
}
else
{
if (down > 140)
{
if (distance)
{
go.transform.position = go2.transform.position;
}
go.transform.Translate(0, -y, x);
}
else if (down < 35)
{
if (distance)
{
go.transform.position = go2.transform.position;
}
go.transform.Translate(0, -y, -x);
}
else if (down > 35 && down < 140 && right > 0)
{
if (distance)
{
go.transform.position = go2.transform.position;
}
go.transform.Translate(-x, -y, 0);
}
else if (down > 35 && down < 140 && right < 0)
{
if (distance)
{
go.transform.position = go2.transform.position;
}
go.transform.Translate(x, -y, 0);
}
}
我该如何对质量进行重新处理?我的应用程序中有很多大型IF-ELSE语句,我需要重构所有这些代码还是只保留它?
How can I refactor the mass if-else statement?? I have lots of big if-else statements in my app, do I need to refactor all this code or just leave it alone?
if (up > 80 && up < 140)
{
if (distance)
{
go.transform.position = go2.transform.position;
}
go.transform.Translate(y, 0, x);
}
else
{
if (down > 140)
{
if (distance)
{
go.transform.position = go2.transform.position;
}
go.transform.Translate(0, -y, x);
}
else if (down < 35)
{
if (distance)
{
go.transform.position = go2.transform.position;
}
go.transform.Translate(0, -y, -x);
}
else if (down > 35 && down < 140 && right > 0)
{
if (distance)
{
go.transform.position = go2.transform.position;
}
go.transform.Translate(-x, -y, 0);
}
else if (down > 35 && down < 140 && right < 0)
{
if (distance)
{
go.transform.position = go2.transform.position;
}
go.transform.Translate(x, -y, 0);
}
}
How can I refactor the mass if-else statement?? I have lots of big if-else statements in my app, do I need to refactor all this code or just leave it alone?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
尝试一下
,然后您可以像这样更改代码
Try this
And then you can change your code like this
您可以创建这样的方法:
和重构:
关键是寻找几乎相等的代码并以单独的方法运行。并尝试在条件下做,只有单个比较允许您分开所有情况。
You can create a method like this:
And refactor:
The key is look for code almost equal and run in a separate method. And try to do if conditions in order, only a single comparison when it's allow you separate all cases.
我认为您可以应用
提取方法
来减少重复的代码。并使用
早期返回
模式,它减少了不必要的嵌套if-else
层次结构。那么您的代码将变得更好:
I think you could apply
extract method
which reduces duplicated code.And use
early return
pattern, which reduces unnecessary nestedif-else
hierarchy.Then your code will become better: