基本上,我想防止链接工厂方法。
也就是说,我不要
Circle.createCircle(x,y).createCircle(y,z).createCircle(1,2)
因此,我希望我的工厂方法只能从类而不是从实例调用。
答案 0 :(得分:1)
不可能;它内置在语言规范中,您可以从静态方法所在类型的表达式中调用静态方法。
但是,不用担心。这是每个阳光下的小狮子都会警告的事情。如果您尝试使您的API不受白痴的影响,那么Universe将与您密谋并发明出更好的白痴。你打不赢。担心API设计会导致您的用户误入歧途或不必要地费心使用。不用担心尝试停止使用,任何使用uni的3周编码器都可以一眼看出来,就可以清楚地识别出API的意图或原始代码。