代码之家  ›  专栏  ›  技术社区  ›  BuddyJoe

这叫什么编程风格?

  •  1
  • BuddyJoe  · 技术社区  · 15 年前

    我对这种语法错误的编程风格没有很好的评价 更多

    例如,一些随机的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();
    

    但是您可以在“begin”调用中设置上下文,并在“end”调用中释放它。 我在C#、Java和Ruby中见过这样的样式。它有名字吗?

    5 回复  |  直到 14 年前
        1
  •  6
  •   user166390 user166390    15 年前

    “具有全局状态副作用的程序” ?

    (虽然OGL确实使用堆栈来维护各种状态,但在本例中没有使用它,因此在我的回复中省略了它。)

        2
  •  1
  •   Dexygen    15 年前

    面向参考的程序设计?

        3
  •  1
  •   Keith Adler    15 年前
        4
  •  1
  •   Mik Lernout    15 年前

    它看起来很像 建设者

        5
  •  1
  •   Yngve Hammersland    15 年前

    这看起来有点像个建筑工人。你有什么是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();