Sti*_*MAN 14 c++ coding-style fluent-interface
我最近遇到了这个表达 - 但是在维基百科上阅读并没有对我说明多少 - 我仍然没有得到它:
[编辑] 维基百科文章C++示例过长,并将流畅的界面讨论与简单的Glut应用程序的示例混为一谈.有人可以提供一个类的SUCCINCT C++示例来说明一个流畅的界面(例如,这种影响与普通的C++界面有何不同)?
Thi*_*ilo 10
它通过减少打字(和阅读)的数量而使编码人员受益.
要在Wikipedia上使用C++示例:
之前:
int main(int argc, char **argv) {
GlutApp app(argc, argv);
app.setDisplayMode(GLUT_DOUBLE|GLUT_RGBA|GLUT_ALPHA|GLUT_DEPTH); // Set framebuffer params
app.setWindowSize(500, 500); // Set window params
app.setWindowPosition(200, 200);
app.setTitle("My OpenGL/GLUT App");
app.create();
}
Run Code Online (Sandbox Code Playgroud)
后:
int main(int argc, char **argv) {
FluentGlutApp app(argc, argv)
.withDoubleBuffer().withRGBA().withAlpha().withDepth()
.at(200, 200).across(500, 500)
.named("My OpenGL/GLUT App");
app.create();
}
Run Code Online (Sandbox Code Playgroud)
对"流畅的界面"一词有不同的解释.在C++中创建一个的常用方法是方法链,它通常用于例如iostream库:
Object.MethodA().MethodB();
cout << "a = " << a;
Run Code Online (Sandbox Code Playgroud)
该命名参数成语是一口流利的界面的另一个很好的例子:
Window w = CreateWindow()
.Width(400)
.Height(300)
.OnTop();
Run Code Online (Sandbox Code Playgroud)
好处?代码更易读,更灵活,但仍然取决于课程的实施.