哎呀,耦合和opengl

时间:2016-05-24 16:48:32

标签: oop opengl graphics

耦合似乎是糟糕的编程习惯。为什么OOPS提倡这种范式?作为一个例子,我查看了Java,.net和Android矩形类。每个定义不同。此外,您必须实例化一个矩形来绘制它。

使用OpenGL,绘制矩形不会耦合到矩形对象。这将矩形的绘制与对象分离,使API更加健壮。您可以将矩形绘制为类似lambda的函数 - 而根本不创建矩形对象。

将对象耦合到对象可能是抽象功能或制作组件的一种方式。但对我来说,它似乎限制了使用并强制执行全部或全部。要么使用我的对象和方法,要么什么也不用。然后,随着不同的方法不同地定义了相同对象的扩散。

库倾向于将对象的字段分解为完成任务所需的参数。这仅添加了函数名称。例如。在oops中它将是" rectangle.draw()"在opengl中它将是:" drawRectangle(x1,y1,x2,Y2)"。

为什么哎呀夫妇画到形状。看起来奇怪。此外,如果绘制方法访问硬件并添加了新GPU,则必须更改每个对象,而不是仅仅更改绘图方法(如果没有耦合)。

图形是oops抽象不是最佳方法的领域是一个更好的精炼问题。

使用oops,我们不仅仅定义一个像c结构这样的对象,然后我们定义可以对该对象做什么,这个变化很大。然后我们将对象可以做的事情与对象结合起来。这导致相同对象的不同定义。并且没有人可以假设知道对象可以做的所有事情。

例如,我们可能想要将一个矩形平分。将新的bisect方法添加到矩形对象或创建一个带有矩形结构的bisect函数。随着新功能的添加,结构不会发生变化,但对象的方法会因为它们紧密耦合而改变对象。

然后可以就结构达成共识。例如。矩形是具有长度和宽度的结构,表示为数字。你可以用矩形做什么取决于你选择的库。

1 个答案:

答案 0 :(得分:0)

我先回答。开发3层系统,使用SQL后端,业务对象作为中间层,GUI作为前端层,无需OOP。用c#,这么多重复。你定义的东西3次。

我的意思是SQL是数据抽象的终极选择。 CRUD行为。创建,阅读。更新。删除。处理数据,如解释REPL的fetch decode exe循环。

这些操作是否与对象绑定?汇编指令是否基于对象。 Mov Ax,Bx。在OOP中,这将是对对象或寄存器的Ax.mov(BX)绑定操作。

没有咆哮。