耦合似乎是一种糟糕的编程实践。OOPS为什么提倡这种范式?例如,我查看了Java、.net和Android矩形类。每个定义都不同。此外,你必须实例化一个矩形来绘制它。
使用OpenGL,绘制矩形不会与矩形对象耦合。这种将矩形的绘制与对象解耦的方式使API更加健壮。您可以将矩形绘制为类似lambda的函数,而无需创建矩形对象。
将动作耦合到对象可能是抽象功能或制作组件的一种方式。然而,在我看来,它似乎限制了使用,要么全部强制执行,要么什么都不强制执行。要么使用我的对象和方法,要么什么都不使用。然后,用不同的方法定义的相同对象激增。
库倾向于将对象的字段分解为完成任务所需的参数。这只会添加到函数名称中。例如,在oops中,它将是opengl中的"矩形.draw()",它将为:"drawRectangle(x1,y1,x2,Y2)"。
为什么oops会将绘图与形状结合起来。看起来很奇怪。此外,如果绘制方法访问硬件并添加了新的GPU,则必须更改每个对象,而不是仅更改未耦合的绘制方法。
图形是一个oops抽象不是最佳方法的领域吗?这是一个更好的问题。
有了oops,我们不仅定义了一个像c结构这样的对象,还定义了可以对该对象做什么,这一点变化很大。然后,我们将可以对对象执行的操作与对象相结合。这导致了对相同对象的不同定义。没有人可以假设知道对一个物体所能做的一切。
例如,我们可能想要平分一个矩形。向矩形对象添加一个新的平分方法,或者创建一个采用矩形结构的平分函数。随着新功能的添加,结构不会改变,但对象的方法会改变,从而改变对象,因为它们是紧密耦合的。
然后可能会就结构达成共识。矩形是一种长度和宽度用数字表示的结构。你可以对矩形做什么取决于你选择的库。
我会先回答。开发3层系统,以SQL后端、业务对象作为中间层、GUI作为前端层,会产生OOP。有了c#,重复太多了。你定义的东西3次。
我的意思是SQL是数据抽象的终极。CRUD行为。创建、读取。使现代化删去将数据处理为解释REPL的fetch decode exe循环。
这些操作是否与对象绑定?部件指令是否基于对象。Mov Ax,Bx。在OOP中,这将是Ax.mov(BX)对对象或寄存器的绑定操作。
不咆哮。