I'm wondering if there is a standard name for this kind of object or if FakeRecord works as the name for this class.

More generally, is there a name for a class that stands in for or behaves similarly to another class? Is there a standard implementation/design pattern?

Further clarification

For the purposes of my app, basically I have a utility function that sends an email to a recipient. The recipient can be any Django record so long as it has an email address, a first name, and a last name.

However, sometimes the app sends a one-off mailing to some given e-mail address that doesn't have a record. In those cases, I simply create a FakeRecord with the email address (and first name/last name if available), and send that in instead.

Since the utility function itself doesn't do anything with the record other than retrieving the attributes, none of the other db functionality of a Django record object is needed.

Name it for what it does. If its a testing mock, name it MockRecord. If its a production object that takes record data and does Foo with it, name it FooRecord. You don't want to have names like "Fake" in production code, because, A) other developers (which includes you six months from now when you forgot what you did) won't know what the class is for, and B) if it ever appears in an error message it might give your users the wrong impression.
–
kylbenOct 19 '11 at 20:49

According to Martin Fowler, it would probably be a Stub in this case. Fakes are used for example, to host a test server, which is actually a server, using sockets, etc, only it doesn't do heavy calculating.
–
Yam MarcovicOct 19 '11 at 23:13