Question

J'ai trois cours:

  • Client
  • Session
  • Prise

Session et socket dépassent le client pour créer les deux objets.
Une session de dépassement sur une prise et aucune sockets n'est créée sans session. Le client devrait-il avoir une fonction qui crée une session pubalement et une prise en privé?
Cela ne viole-t-il pas la loi de Demeter?
Modifier: Code actuel:

class Client
{
private:
  // Connection details
public:
  shared_ptr<Socket> createSocket(); // returns a new socket if the connection is opened
}

class Session
{
public:
  Session(Client &); // Accepts a client and gets a socket for i/o to the server
}

Maintenant, quelque chose me dit que la session ne devrait pas être responsable d'obtenir la prise du client et que le client devrait créer la session.
Ai-je raison?

Était-ce utile?

La solution

Ça dépend. Tout ce dont vous nous parlez Client est que cela crée les deux Session et Socket, rien de plus.

Si Client Doit utiliser les deux, alors il n'y a pas de violation. S'il crée seulement Socket Afin de le fournir à Session, Je dirais ça est une violation et Session devrait avoir Socket lui-même.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top