ভিউমোডেলগুলি তৈরি করার জন্য কি কোনও কারখানার শ্রেণির প্রয়োজন আছে?


17

আমার এক সহকর্মী আমাদের এএসপি.নেট এমভিসি সমাধানগুলিতে ভিউমডেল অবজেক্ট তৈরি করার জন্য কারখানার ক্লাস ব্যবহার করার পরামর্শ দিয়েছিলেন। আমাদের অ্যাপ্লিকেশনগুলিতে ভিউ মডেলগুলি যেভাবে তৈরি করা হয়েছে তার নকশা এবং রক্ষণাবেক্ষণের ক্ষেত্রে এটি সহায়তা করতে পারে এই ধারণাটি।

আমি অন্য কারও কাছে এর অভিজ্ঞতা আছে কিনা তা জানতে চেয়েছিলাম। আমি কিছু গবেষণা করেছি এবং এই অনুশীলনের খুব কম পেয়েছি।

বর্তমানে আমরা কন্ট্রোলার পর্যায়ে ভিউমডেল অবজেক্টগুলি তৈরি করি

public ActionResult Index()
{
    return this.View(this.BuildIndexViewModel());
}

সুতরাং এটি.বিল্ডইন্ডেক্সভিউমোডেল () ভিউমডেল ক্লাস তৈরি করার জন্য দায়বদ্ধ (স্পষ্টতই :))। তবে আমরা এর সম্ভাবনাটি খতিয়ে দেখছি:

public ActionResult Index()
{
    return this.View(ViewModelFactory.CreateIndexViewModel());
}

এটি একটি আকর্ষণীয় ধারণা, তবে আমি 100% বিশ্বাসী নই। আমি এই সম্পর্কে অন্যান্য লোকের মতামত আগ্রহী ছিল।


4
আমি সদর্থক হতে সুবিধা দেখতে সংগ্রাম। আপনি অবজেক্টগুলির নির্মাণগুলি লুকানোর জন্য একটি কারখানা ব্যবহার করবেন, তবে আপনি কেন এই ক্ষেত্রে করবেন?
কোডার্ট

3
আপনার বিল্ডইন্ডেক্সভিউমোডেল পদ্ধতিটি ইতিমধ্যে একটি ফ্যাক্টরি পদ্ধতি, যা সম্ভবত নিয়ন্ত্রকের কাছে ব্যক্তিগত। পৃথক কারখানার শ্রেণিতে এটিকে নিষ্ক্রিয় করার একমাত্র কারণ হ'ল এটি অন্য নিয়ামকটিতে পুনরায় ব্যবহার করা।
ম্যাটড্যাভি

আপনারা উভয়েই এই বিষয়ে আমার মত একই মতামত ভাগ করেছেন, তাই আমি আনন্দিত যে আমি একা নই :) :) ম্যাটড্যাভী আমি সত্যই বলতে পারি যে আমি খুব সন্দেহ করতে পারি যে ভিউমোডালরা আরও একজন নিয়ন্ত্রণকারীর সাথে ব্যবহৃত হবে, যা কারখানা তৈরি করে ধারণা অপ্রয়োজনীয়। বিষয়টি আবার কর্মস্থলে এলে আমি এটি ভাগ করব।
জেসন ইভান্স

ব্যক্তিগতভাবে আমি নিজেই নির্মাণের প্রক্রিয়াটির বিশেষজ্ঞ হতে ভিউ মডেল টাইপটিকে পছন্দ করব। দক্ষতার অন্য কোনও জায়গায় থাকা উচিত কেবল যদি নির্মাণের জন্য অন্যান্য প্রয়োগের ক্ষেত্রগুলির জ্ঞান প্রয়োজন (উদাহরণস্বরূপ সংগ্রহস্থল), এমন ক্ষেত্রে আপনি কোনও মধ্যস্থতাকে ভিউ
মডেল

@ ম্যাটডাভে: আমি কী উত্তর দিতে পারি তার উত্তরগুলিতে আপনি কি এই দুটি মন্তব্য গুটিয়ে রাখতে পারবেন?
পিডিআর

উত্তর:


8

এই ক্ষেত্রে আমি বলব অনুসরণ করার জন্য সর্বোত্তম গাইডেন্স হ'ল জিআরএসপি নীতিগুলি। বিশেষ করে অবজেক্ট তৈরির দায়িত্ব নির্ধারণের চারটি মানদণ্ডটি দেখুন:

সাধারণভাবে, নীচের প্রয়োগগুলির মধ্যে একটি বা আরও বেশি কিছু, ক্লাস বি এর উদাহরণ তৈরি করার জন্য দায়বদ্ধ হতে হবে

  • বি এর উদাহরণগুলিতে A এর উদাহরণগুলি সমন্বিতভাবে সমন্বিত থাকে
  • খ এর বি রেকর্ড উদাহরণস্বরূপ
  • খ এর উদাহরণগুলি এ এর ​​কাছ থেকে ব্যবহার করে
  • খ এর দৃষ্টান্তগুলির জন্য এ এর ​​উদাহরণগুলির জন্য প্রাথমিক তথ্য রয়েছে এবং এটি তৈরিতে প্রেরণ করে।

আপনার নিয়ামক শ্রেণি (বি) সেই তালিকার # 3 & # 4 আইটেমগুলির সাথে মেলে (এবং ভিউ মডেলটি পিছনে পোস্ট করা থাকলে # 2), সুতরাং এটি ভিউমডেল (এ) নির্মাণ আচরণের জন্য ইতিমধ্যে একটি খুব বুদ্ধিমান জায়গা। যেহেতু আমি এটি দেখছি কেবলমাত্র দুটি কারণ থাকবে যা আমাকে সেই নির্মাণ আচরণকে বিশেষজ্ঞের ক্লাসে উত্তোলন করতে বাধ্য করবে।

  • ডিআরওয়াই - যদি দুটি বা আরও বেশি কন্ট্রোলারকে ভিউমডেল নির্মাণ আচরণ ভাগ করে নেওয়া দরকার হয় তবে এটিকে একটি আলাদা উপাদানে আবদ্ধ করে কোডের পুনরায় ব্যবহারের সুবিধার্থে এবং সদৃশতা এড়ানো হবে।
  • যদি নির্মাণ আচরণের অন্যান্য সিস্টেমের উপাদান যেমন रिपোজিটরিগুলি, ভ্যালিডিটার ইত্যাদির উপর নির্ভরশীলতা থাকে এবং আপনি এই কাপলিংটি নিজেই নিয়ামকের সাথে পরিচয় করিয়ে দিতে চান না (জিআরএসপি পদে, একটি খাঁটি বানোয়াট)।

জিআরএসপি-তে এই 4 অবজেক্ট তৈরির মানদণ্ডটি ফিরে দেখে, আমি কেবল সেই আচরণটি আলাদা কারখানায় সরিয়ে ফেলতে পারি যদি এটি আমাকে তালিকায় একটি অতিরিক্ত টিক দেয় won অন্যথায় এটি করার কোনও মূল্য থাকবে না।

আশা করি এইটি কাজ করবে!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.