আমি একটি বিদ্যমান অ্যাপ্লিকেশনের গ্রিনফিল্ড মডিউলের জন্য ডিডিডি -র মতো পদ্ধতির ব্যবহার করছি; আর্কিটেকচারের কারণে এটি 100% ডিডিডি নয় তবে আমি কয়েকটি ডিডিডি ধারণাটি ব্যবহার করার চেষ্টা করছি। আমার একটি সীমাবদ্ধ প্রসঙ্গ আছে (আমি মনে করি এটি সঠিক শব্দ - আমি এখনও ডিডিডি সম্পর্কে শিখছি) দুটি সত্তা নিয়ে গঠিত: Conversationএবং Message। কথোপকথন মূল কারণ, কথোপকথন ছাড়া কোনও বার্তা উপস্থিত নেই এবং সিস্টেমের সমস্ত বার্তা একটি কথোপকথনের অংশ।
আমার একটি ConversationRepositoryক্লাস রয়েছে (যদিও এটি গেটওয়ের মতো সত্যিই বেশি, আমি "রেপোজিটরি" শব্দটি ব্যবহার করি) যা ডেটাবেসে কথোপকথন খুঁজে পায়; যখন এটি কোনও কথোপকথনটি সন্ধান করে তখন এটি কথোপকথনের জন্য (কারখানার মাধ্যমে) বার্তাগুলির একটি তালিকা তৈরি করে (সম্পত্তি হিসাবে প্রকাশিত)। এটি জিনিসগুলি পরিচালনা করার সঠিক উপায় বলে মনে হয় MessageRepositoryকারণ কোনও কথোপকথন পুনরুদ্ধার করার সময় কেবল এটি উপস্থিত থাকে কারণ এটি একটি পূর্ণ-বিকাশের শ্রেণীর প্রয়োজন বলে মনে হয় না ।
যাইহোক, যখন বার্তাটি সংরক্ষণ করার কথা আসে তবে এটি কি কথোপকথনের রিপোজিটরির দায়িত্ব, কারণ এটি বার্তার সামগ্রিক মূল? আমার অর্থ হ'ল, আমার কি কথোপকথন রিপোসিটোরি নামক কোনও পদ্ধতি থাকা উচিত, বলুন, AddMessageএটি কোনও বার্তাটিকে প্যারামিটার হিসাবে নেয় এবং এটি ডেটাবেসে সংরক্ষণ করে? বা বার্তাগুলি সন্ধান / সংরক্ষণের জন্য আমার একটি পৃথক সংগ্রহস্থল থাকা উচিত? যৌক্তিক জিনিসটি প্রতি সত্তার জন্য একটি সংগ্রহস্থল বলে মনে হয়, তবে আমি "কনটেক্সট প্রতি একটি সংগ্রহস্থল" শুনেছি।