আমি কয়েকটি এমভিভিএম নিবন্ধ দিয়ে যাচ্ছি, প্রাথমিকভাবে এটি এবং এটি ।
আমার সুনির্দিষ্ট প্রশ্নটি হল: আমি মডেল থেকে ভিউমোডলে পরিবর্তনগুলি কীভাবে যোগাযোগ করব?
জোশের নিবন্ধে, আমি দেখতে পাচ্ছি না যে তিনি এটি করেন। ভিউমোডেল সর্বদা বৈশিষ্ট্যগুলির জন্য মডেলকে জিজ্ঞাসা করে। রাহেলের উদাহরণে, তিনি মডেলটি বাস্তবায়ন করেছেন এবং মডেল INotifyPropertyChanged
থেকে ঘটনা উত্থাপন করেছেন, তবে সেগুলি নিজেই দেখুন (সে কী করে সে সম্পর্কে আরও বিশদে তার নিবন্ধ / কোড দেখুন) consumption
কোথাও আমি এমন উদাহরণ দেখি না যেখানে মডেল বৈশিষ্ট্যগুলিতে পরিবর্তনগুলির ভিউমোডেলকে সতর্ক করে। এটি আমাকে চিন্তিত করেছে যে সম্ভবত এটি কোনও কারণে করা হয়নি। মডেল পরিবর্তনের ভিউমোডেলকে সতর্ক করার জন্য কি কোনও প্যাটার্ন রয়েছে? এটি অবশ্যই প্রয়োজনীয় বলে মনে হবে (১) অনুমিতভাবে প্রতিটি মডেলের জন্য ১ টিরও বেশি ভিউমোডেল রয়েছে এবং (২) এমনকি একটি ভিউমোডেল থাকলেও, মডেলটিতে কিছু পদক্ষেপের ফলে অন্যান্য বৈশিষ্ট্য পরিবর্তিত হতে পারে।
আমি সন্দেহ করি যে ফর্মটির উত্তর / মন্তব্য থাকতে পারে "আপনি কেন এটি করতে চান?" মন্তব্য, তাই এখানে আমার প্রোগ্রাম একটি বিবরণ। আমি এমভিভিএম-তে নতুন তাই সম্ভবত আমার পুরো নকশাটি ত্রুটিযুক্ত। আমি সংক্ষেপে এটি বর্ণনা করব।
আমি "গ্রাহক" বা "পণ্য" শ্রেণীর চেয়ে আরও আকর্ষণীয় (কমপক্ষে, আমার কাছে!) এমন কিছু প্রোগ্রাম করছি। আমি ব্ল্যাকজ্যাক প্রোগ্রাম করছি।
আমার একটি দৃষ্টিভঙ্গি রয়েছে যার পিছনে কোনও কোড নেই এবং কেবল ভিউমোডেলে (জোশ স্মিথের নিবন্ধটি দেখুন) বৈশিষ্ট্য এবং কমান্ডের সাথে আবদ্ধ হওয়ার উপর নির্ভর করে।
আরও ভাল বা খারাপ হওয়ার জন্য, আমি এমন মনোভাব নিয়েছি যে মডেলটিতে কেবল যেমন ক্লাসগুলিই নয় PlayingCard
, পুরো ক্লাসটি স্থিত করে রাখে এমন ক্লাসও থাকতে হবে এবং যখন খেলোয়াড়টি Deck
বাজে BlackJackGame
গেছে তখন জানে, ডিলারকে কার্ড আঁকতে হবে এবং প্লেয়ার এবং ডিলারের বর্তমান স্কোরটি কী (21, 21, বুস্ট ইত্যাদির চেয়ে কম)।
থেকে BlackJackGame
আমি "DrawCard" মত পদ্ধতি এক্সপোজ এবং এটা আমার ঘটেছে যে একটি কার্ড ড্র যখন হয়, যেমন বৈশিষ্ট্য CardScore
, এবং IsBust
আপডেট করা উচিত এবং এই নতুন মান ViewModel আদানপ্রদান। সম্ভবত এটি ত্রুটিপূর্ণ চিন্তাভাবনা?
কেউ ভিউমোডেল DrawCard()
পদ্ধতিটি বলেছিল এমন মনোভাব গ্রহণ করতে পারে তাই তার আপডেট স্কোর জিজ্ঞাসা করতে হবে এবং সে আবক্ষু কিনা তা খুঁজে বের করতে হবে। মতামত?
আমার ভিউমোডেলে, আমার কাছে প্লেিং কার্ডের একটি আসল চিত্রটি (স্যুট, র্যাঙ্কের উপর ভিত্তি করে) দখল করার এবং এটিকে দেখার জন্য উপলব্ধ করার যুক্তি রয়েছে। মডেলটির সাথে এটি উদ্বিগ্ন হওয়া উচিত নয় (সম্ভবত অন্যান্য ভিউমোডেল কার্ডের চিত্রগুলি খেলার পরিবর্তে কেবল সংখ্যাগুলি ব্যবহার করবে)। অবশ্যই, কেউ কেউ আমাকে বলবেন যে মডেলটির এমনকি ব্ল্যাকজ্যাক গেমটির ধারণাগুলিও থাকা উচিত নয় এবং এটি ভিউমোডেলে পরিচালনা করা উচিত?
OnBust
এবং ভিএম এতে সদস্যতা নিতে পারে। আমার ধারণা আপনি পাশাপাশি আইএএ পদ্ধতির ব্যবহার করতে পারেন।