signature -> 签名式?
马维达 2003-8-22
在面向对象编程书籍中,常常会使用“signature”一词。国内有许多译作,把这个词译为“签名式”。我觉得,这是一个误译。
首先,让我们看一看什么是“signature”。下面是引自GoF的Design Pattern一书的定义:
Every operation declared by an object specifies the operation’s name, the objects it takes as parameters, and the operation’s return value. This is known as the operation’s signature.
可能有许多人会和我一样,最初看到这段话,会把“signature”理解为“签名”,并因而觉得有点难以索解:某个对象声明的每个操作所指定的操作名、它用作参数的各个对象、以及操作返回值,和“签名”有什么关系?但我们从最初学到“signature”这个单词起,就已经牢牢记住,“signature”就是“签名”,这难道又会有什么问题?如果你碰巧又看到过“签名式”这种译法,大概就更加难以摆脱这样一个让人无法理解的“签名”了。
问题到底在哪里?还是让我们查一查英英辞典:
Merriam-Webster Online (http://www.m-w.com/home.htm)
1 a : the act of signing one's name b : the name of a person written with his or her own hand
2 : a feature in the appearance or qualities of a natural object formerly held to indicate its utility in medicine
3 a : a letter or figure placed usually at the bottom of the first page on each sheet of printed pages (as of a book) as a direction to the binder in arranging and gathering the sheets b : a folded sheet that is one unit of a book
4 a : KEY SIGNATURE b : TIME SIGNATURE
5 : the part of a medical prescription that contains the directions to the patient
6 : something (as a tune, style, or logo) that serves to identify; also : a characteristic mark
原来这个所谓的“签名式”有这么多含义!里面当然有“签名”,但“碰巧”也有能够解答我们的疑问的解释:“something (as a tune, style, or logo) that serves to identify”!把这一个“signature”代入GoF的原话中,其含义已不言自明。
把多义的英语单词对应到单一的中文词语,本来就是英语学习中的痼疾,如果再“顾中文的名思英文的义”,前后相去真不知会有多远了——GoF说“signature”,想到的是标识和区分各个操作的那些东西:某个对象声明的每个操作所指定的操作名、它用作参数的各个对象、以及操作返回值,而如果我们想到的是不知该作何解的“签名式”,实在是很“有趣”的事!
最后一个问题,“signature”到底应如何翻译?有人生造了一个词,“型构”,我觉得既谐音,又能够表达“signature”的含义。——也许还有别的更好的译法,但无论如何,我们都不用再费尽心思去理解所谓的“签名”或“签名式”了。