语言是 Unity C#,场景其实就是游戏里的那种很多层的弹窗确认取消跳转。
说来惭愧,下面伪代码还是"优化"拆分过的。 之前塞在一个函数中,不管是代码本身(层级过多),还是业务逻辑都很难理解维护。
目前这里的 afterFinal 其实只在最后才用到,却穿过多个函数。考虑把每个步骤的 Step Event onSuccess 封装成一个类,又存在一定内存消耗(当然如果封装的维护性和阅读性很好的话是可以接受的)
思来想去还是先咨询各位,有没有比较通用的解决方式或者专业术语是适用于这类需求的?
function void Step1(Event afterFinal)
{
if (condition1)
{
new ConfirmWindows1(onSuccess: ()=>{ Step2(afterFinal); });;
}
else
{
Step2();
}
}
function void Step2(Event afterFinal)
{
if (condition2)
{
new ConfirmWindows2(onSuccess: ()=>{ Step3(afterFinal); });;
}
else
{
Step3();
}
}
function void Step3(Event afterFinal)
{
if (condition3)
{
FinillyDoSomething();
afterFinal?.Invoke();
}
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.