怎么知道什么是存根?

时间:2012-12-27 18:27:01

标签: assembly rmi mips corba stub

编写程序时,存根总是意味着同样的事情吗?

  

“Stubs为对象,方法或者提供替换实现   函数以删除外部依赖项。存根是   通常在单元和组件测试期间使用。如果你想要   编写单元测试并需要替换对数据库的简单调用,   外部库(例如,文件I / O)或其他系统API,存根   可能非常适合您的需求。“

我认为stub和skeleton只在CORBA中,但是这里有一个存根并且是同一个东西/概念?当“stub”这个词出现在相当不同的编程模型中时(RMI和MIPS可能有两个相当不同)都有一个共同点或连接,它们都有一个叫做“stub”的概念/东西,我也知道RMI / CORBA就有一个叫做骨架的东西但它也可能有一个没有骨架的存根或什么?

例如当main转换为程序集时,它在这里被称为一个螺柱,并且是否存在与该存根的连接,骨架用于网络编程,例如CORBA,或者它们没有连接,尽管它们都被称为存根?

movia r8,stub # source
movia r9,0x800020 # destination
ldw r10,0(r8) # read
stw r10,0(r9) # write
ldw r10,4(r8) # read part 2
stw r10,4(r9) # write
ldw r10,8(r8) # read jump
stw r10,8(r9) # write
... # initialize others

代码上面是存根的例子吗?如果是这样,什么是骨架或不适用?

感谢您的信息。

1 个答案:

答案 0 :(得分:1)

CORBA和RMI存根是一个非常特定的对象,在本地表示某个远程对象。该对象存在于服务器端,存根存在于客户端。存根实现相同的接口(具有相同的工作方法),将所有调用转发到远程对象,还接收返回的结果和异常。通常会自动生成存根类。

Stub通常有不同的含义(只有一半完成,通常只是使代码编译但不能正常运行)。