昨天我提出了这个问题:Java function on function
寻求帮助并标记为重复但我认为我没有理解我想要的东西,现在我再试一次。
我希望方法只能在方法上调用,例如我们有类Roads,在路上我们会走一条路。
Roads.Way1()
在我们选择Way1后,我们将转到Path1
Roads.Way1().Path1()
但是如果我们选择Way2
Roads.Way2()
我们无法前往Path1()因为Way2()转到Garden1()所以
Roads.Way2().Garden1()
所以我试图说你只能以想要的方式使用方法(函数),我在不同的API或库中看到了这一点。所以为了更好的理解
Way1进入Path1, IS无法进入Garden1
Way2转到Garden1, IS无法转到Path1
那么如何管理我可以创造出具有自己的方式的不同道路,这样我就能做出像
Roads.Way1().
/*
Goes to:
Path1()
Fountain()
Market()
*/
并且无法访问它们并且只能使用自己的目的地。
答案 0 :(得分:3)
我认为你要求的是:我如何表达"控制流程"使用"语言功能"。好吧,有办法到达那里:你需要很多不同的类(或者可能是接口);所以这是一个" Way2"根本就不会提供" Path1"方法
但是:这样做听起来像是糟糕的想法。它最初会正常工作,但是一旦你开始扩展你的系统,你就会遇到所有时间的问题:
"嗯,我需要改变Way2;它现在应该允许去Path1;但是uups;有些Way2-thingies不应该允许Path1;所以我实际上需要一个Way3-thingy"等等。保持这段代码很快就会成为一场噩梦。
我知道,这只是一种意见,但我的直觉是:你正在寻找解决问题的错误方法。相反,你应该花时间确定你的实际问题是什么;然后考虑更好的方法来解决这个问题!