(La domanda è indipendente dalla lingua, ma per illustrare il punto, ho scritto gli esempi in C #.)
Dire che sto provando a modellare il comportamento dei "componenti" che comunicano tramite "porte".
Potrei modellarlo come:
public interface Component
{
    int  Read(int portID, byte[] buffer);
    int Write(int portID, byte[] buffer);
}
e forse implementare l'interfaccia come:
public class MyComponent : Component
{
    private class Port
    {
        int  Read(byte[] buffer) { ... }
        int Write(byte[] buffer) { ... }
        void DoSomethingComplex()
        {
            this.Read(...);
            // ...
            this.Write(...);
        }
    }
    private Dictionary<int, Port> ports;
    public override int  Read(int portID, byte[] buffer) { ports[portId]. Read(buffer); }
    public override int Write(int portID, byte[] buffer) { ports[portId].Write(buffer); }
}
 Abbastanza semplice, ma considera ciò che  ti aspetti    Read    e   Write    da fare: 
Dal punto di vista di un estraneo, sembra naturale che   Read    legga i dati  di  la porta del componente  in  il buffer specificato.
Tuttavia, come un  insider  che sta chiamando   this.Read(...)   , è davvero quello che ti aspetti?
O ti aspetteresti che i dati vengano letti dal  buffer  nella  porta ? 
La mia domanda è duplice:
-  Non è stata fornita documentazione aggiuntiva, quale significato di ReadeWriteè più intuitivo?
-  Come posso denominare ragionevolmente queste funzioni in modo che l'intento sia chiaro senza la necessità di ulteriore documentazione? 
 (Ovviamente, posso chiamarliReadFromPortIntoBuffereWriteToPortFromBuffero qualcosa del genere, ma uno spera in nomi più succinti.)