নিয়ন্ত্রণকারীকে এমভিসি প্যাটার্নে কোনও দৃশ্যে ডেটা পাস করা উচিত?


11

আমি এএসপি.নেট এমভিসি (এবং অন্যান্য ওয়েব-ভিত্তিক এমভিসি বাস্তবায়ন) এর সাথে প্রায়শই কাজ করি, তবে এটি এমন কিছু যা আমি কখনই নিশ্চিত নই: নিয়ামক এবং যোগাযোগ দেখতে হবে?

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

আমার কাছে কি সঠিক দৃষ্টিভঙ্গি আছে, বা এটির সঠিক কোনও উত্তর নেই বলে চলেছে? ওয়েবে বনাম অন্যান্য পরিবেশের সাথে কাজ করার সময় উত্তরটি কি পরিবর্তন হয়? যখন আপনার কাছে দৃ strongly়-টাইপযুক্ত ভিউ (এএসপি.নেট এমভিসির মতো) ধারণা থাকে তখন কী উত্তর পরিবর্তন হবে?


"এমভিসি" এর "এম" এটির জন্য - মডেল - যা নিয়ামক থেকে ভিউতে প্রেরণ করা ডেটার প্রতিনিধিত্ব করে।
জে সুলিভান

উত্তর:


7

কন্ট্রোলার ডেটা প্রস্তুত করে যা আরও রেন্ডারিং / প্রদর্শনের জন্য দর্শনে দেওয়া হবে। এটি একটি প্রকাশনা সাবস্ক্রাইব প্রক্রিয়া বা অনুরূপ মাধ্যমে ব্যবহারকারী ইনপুট ডেটা গ্রহণ করে। এমভিসি সম্পর্কে আরও তথ্যের জন্য উইকিপিডিয়া বা মার্টিন ফাউলারের ওয়েবসাইটে প্রথম চিত্রটি দেখুন।

যদি ভিউটি নিয়ামকের কাছ থেকে ডেটা প্রত্যাশা করে, তবে তারা কার্যকরভাবে (নিয়ামক, দর্শন) জুটি হিসাবে একত্রে আবদ্ধ হয়।

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

যখন আপনার কাছে দৃ strongly়-টাইপযুক্ত ভিউ (এএসপি.নেট এমভিসির মতো) ধারণা থাকে তখন কী উত্তর পরিবর্তন হবে?

আপনার প্রোগ্রামিংয়ের ভাষাটি দৃ .়-টাইপযুক্ত কিনা তা আপনি আপনার অ্যাপ্লিকেশনটি কীভাবে সংগঠিত করছেন তাতে কোনও প্রভাব নেই।


কোন ধরণের ডেটা প্রস্তুত এবং অতিক্রম করা হচ্ছে? একটি সাধারণ উদাহরণ নিন: এটির আইডি দ্বারা একটি নিবন্ধ দেখানো। এটি যাচাইকরণের পরে পাস করা আইডি (এটি কোনও নিবন্ধের দিকে নির্দেশ নাও করতে পারে), বা নিয়ামকটি ডাটাবেস থেকে নিবন্ধটি পেয়ে এটি পেরিয়ে যায়?
অ্যান্ডি হান্ট

আপনি যদি কেবল আইডি পাস করেন তবে আপনার ভিউ রেন্ডারিংয়ের চেয়ে বেশি কাজ করছে না? এটি এমন ডেটা পুনরুদ্ধার করতে হবে যা সম্ভবত প্যাটার্নের চেতনাতে থাকবে না।
রিগ

1

আপনি যে প্রশ্নটি উত্থাপন করছেন তা আমার দলে সময়ে সময়ে আলোচনা হয়। আমরা দুটি পদ্ধতির বিষয়ে তর্ক করি, যা উভয়ই তাদের মতামত এবং উপকার রয়েছে।

প্রথমটি, যুক্তি দেয় যে নিয়ামক নিম্নলিখিত প্যাটার্ন দ্বারা ভিউ আপডেট করতে পারে। এটি জিইউআই এবং মডেল উভয় ইভেন্টই শোনে। যখন কোনও জিইউআই ইভেন্ট হয়, এটি মডেলটিতে প্রয়োজনীয় ক্রিয়া সম্পাদন করে, যার ফলস্বরূপ আগুন এবং ঘটনাটি ঘটে। এখন নিয়ামকটি সাধারণত প্রয়োজনীয় ডেটা দিয়ে ভিউ আপডেট করে।

দ্বিতীয় পদ্ধতির যুক্তিযুক্ত যে দর্শনটি নিজেই মডেল ইভেন্টগুলি শুনছে এবং ডেটা দিয়ে নিজেকে আপডেট করে যা হয় ঘটনাটির সাথে সংযুক্ত থাকে বা মডেলকে জিজ্ঞাসা করে।

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

দ্বিতীয়টিতে আপনি সেগুলি ডিকপল করছেন তবে আপনার দৃষ্টিভঙ্গি আসলে কোনওভাবে নিজেকে নিয়ন্ত্রণ করছে।

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