سؤال التصميم: هل يجب على العميل إنشاء الجلسة والمقبس؟

StackOverflow https://stackoverflow.com/questions/2832199

  •  26-09-2019
  •  | 
  •  

سؤال

لدي ثلاثة فصول:

  • عميل
  • جلسة
  • قابس كهرباء

كل من Session & Socket DepeAnd على العميل لإنشاء كلا الكائنين.
يتم إنشاء جلسة Depoesends على مأخذ التوصيل وليس هناك مآخذ بدون جلسة. هل يجب أن يكون لدى العميل وظيفة تنشئ جلسة بخصورة ومقبس خاص؟
ألا ينتهك قانون ديميتر؟
تحرير: الكود الحالي:

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
}

الآن يخبرني شيء ما أنه لا ينبغي أن تكون الجلسة مسؤولة عن الحصول على المقبس من العميل وأنه يجب على العميل إنشاء الجلسة.
هل انا على حق؟

هل كانت مفيدة؟

المحلول

هذا يعتمد. كل ما تخبرنا به Client هل يخلق كلاهما Session و Socket, ، لا شيء آخر.

إذا Client يحتاج إلى استخدام كليهما ، ثم لا يوجد انتهاك. إذا كان يخلق فقط Socket من أجل توفيره ل Session, ، أود أن أقول هذا هو انتهاك و Session يجب ان تحصل Socket بحد ذاتها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top