Esiste un'alternativa al termine "oggetto chiamante"?

3

Supponiamo che tu abbia una classe definita (in pseudocodice):

class Puppy {
    // ...
    string sound = "Rawr!";

    void bark() {
        print(sound);
    }
}

E dì, data un'istanza Puppy , tu chiami il suo metodo bark() :

int main() {

  Puppy p;
  p.bark();

}

Nota come bark() utilizza la variabile membro sound . In molti contesti, ho visto gente descrivere sound come variabile membro dell'oggetto "chiamante".

La mia domanda è, qual è il termine migliore da usare rispetto a "chiamare oggetto?" Per me, l'oggetto non sta facendo nessuna chiamata. Sappiamo che le funzioni membro funzionano in un modo solo con un parametro implicito this o self .

Mi è venuto in mente "oggetto ricevente" o "destinatario del messaggio", il che ha senso se non si utilizza il paradigma "messaggistica".

Qualcuno di voi hack felici ha un termine che ti piace usare? Sento che dovrebbe significare "l'oggetto su cui viene chiamato un metodo" e TOUWAMIC non lo taglia.

Per quanto riguarda chi è il "chiamante", direi che main istanzia un oggetto Puppy e chiama il suo metodo bark() .

    
posta ybakos 15.11.2011 - 20:06
fonte

6 risposte

6

L'uso della parola oggetto nel riferimento è ridondante.

Forse chiamante e callee è abbastanza semplice. Anche riferirsi all'oggetto reale come istanza di tipo è un altro approccio, come notato da Wyatt; istanza di Puppy o se essere succinti è l'obiettivo ... istanza .

    
risposta data 15.11.2011 - 20:20
fonte
3

p è il destinatario, destinatario, destinatario, chiamato, "il cucciolo" o semplicemente "p".

L'oggetto che invia il messaggio / chiama il metodo è il mittente o il chiamante. Il chiamante può anche significare la funzione o il metodo che chiama p.bark ().

A volte viene utilizzata la relazione tra gli oggetti perché è un modo più semplice per identificare i due, quindi uno potrebbe essere il genitore e l'altro il bambino, o uno potrebbe essere il delegato e l'altro il delegante.

    
risposta data 15.11.2011 - 20:45
fonte
1

Vorrei andare con uno di:

  • chiama target
  • proprietario del metodo (anche se questo non ha senso se p è null , perché quindi difficilmente possiede qualcosa)
  • callee

Anche se in quello stesso contesto, andrei con p ;)

    
risposta data 15.11.2011 - 20:33
fonte
0

In genere chiamerei p un'istanza di Puppy, non the calling object

    
risposta data 15.11.2011 - 20:14
fonte
0

In base al tuo commento nel post di Wyatt:

Rather, how to describe p in the context of method calls.

Dovrei andare a descrivere p nel contesto delle chiamate ai metodi come "l'istanza del metodo".

In object-oriented programming, a method is a subroutine (or procedure or function) associated with a class. [Wikipedia]

Pertanto, quando descrivo la relazione inversa, ritengo che "l'istanza del metodo" sarebbe corretta nel contesto descritto (ma scambiando la classe per esempio mentre stiamo descrivendo la relazione con l'istanza, non con la definizione stessa della classe).

    
risposta data 15.11.2011 - 20:27
fonte
0

Il "Calling Object" è approssimativamente equivalente a un dispatcher , quindi suppongo che potresti usare quel termine per descriverlo.

I metodi sono legati a una classe, quindi "Calling Object" è ridondante come sottolinea Aaron.

Di solito penso a "il chiamante" come un codice o un oggetto al di fuori del metodo associato.

Dire che ho un modulo chiamato form1 e creo un'istanza di Puppy. Da form1 ho chiamato p.bark (). Vedrei che l'oggetto Calling è form1.

Non penso che ci sia una risposta corretta al 100% qui.

    
risposta data 15.11.2011 - 22:39
fonte

Leggi altre domande sui tag