对于这种语法编程风格,我没有好名字 more 简洁,因为不必将上下文传递给函数或从上下文对象中调用函数。
例如,一些随机的OpenGL C代码:
glBegin(GL_QUADS);
glNormal3fv(&n[i][0]);
glVertex3fv(&v[faces[i][0]][0]);
glVertex3fv(&v[faces[i][1]][0]);
glVertex3fv(&v[faces[i][2]][0]);
glVertex3fv(&v[faces[i][3]][0]);
glEnd();
但您可以在“开始”调用中设置上下文并在“结束”调用中释放它。 我在C#,Java和Ruby中看到过这样的样式。它有名字吗?
答案 0 :(得分:6)
“具有全球状态副作用的程序”?
(虽然OGL确实使用堆栈来维护各种状态,但在本例中没有使用它,因此在我的回复中省略了。)
答案 1 :(得分:1)
面向参考的编程?
答案 2 :(得分:1)
如果您认为语句前面有“this”,您可以将其视为Fluent界面:http://en.wikipedia.org/wiki/Fluent_interface
否则,它看起来非常像面向堆栈的语言,如PostScript:
http://en.wikipedia.org/wiki/Stack-oriented_programming_language
答案 3 :(得分:1)
它似乎与 Builder
非常相似答案 4 :(得分:1)
这看起来像一个建筑师。你有什么是openGL调用,你基本上构建一个三角形(渲染)。您的示例在oo / builder术语中重写:
TriangleBuilder b = new TriangleBuilder(); b.AddVertex(normal, faces[0]); b.AddVertex(normal, faces[1]); b.AddVertex(normal, faces[2]); Triangle t = b.Build();