দক্ষতা বজায় রেখে আমি কীভাবে ইউজার ইন্টারফেসটিকে ব্যবসায়ের যুক্তি থেকে আলাদা করতে পারি?


19

ধরা যাক যে আমি এমন একটি ফর্ম দেখাতে চাই যা একটি কম্বোবক্সে 10 টি ভিন্ন বস্তুর প্রতিনিধিত্ব করে। উদাহরণস্বরূপ, আমি চাই 10 টি বিভিন্ন টমেটো রয়েছে এমন একটি থেকে হ্যামবার্গার চয়ন করুন।

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

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

তদুপরি, আমি যদি ভুল হয়ে থাকি এবং আপনার প্রকৃতপক্ষে পুরো বস্তুকে ফর্মটিতে পাঠানো উচিত, আমি কীভাবে যুক্তি থেকে ইউআইকে বিচ্ছিন্ন করতে পারি?


কোন উপায়ে এটি অকার্যকর হবে? সব ক্ষেত্রে, আপনাকে ব্যবহারকারীর কাছে একটি স্ট্রিং প্রতিনিধিত্ব দেখাতে হবে এবং তার মূল উত্তরটি ম্যাপ করতে হবে।
সাইমন বার্গোট

সমস্যাটি হ'ল উক্ত অবজেক্টটির সাথে কাজ করার জন্য, ব্যবহারকারী এটি বাছাই করার পরে আমাকে এটি আবার আনতে হবে।
উরি

উত্তর:


34

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

আমি এটি যেভাবে বুঝতে পারি, যখন আমরা ইউআই এবং লজিককে পৃথক করার কথা বলি, তখন আমাদের অর্থ ঘনিষ্ঠ মিলনের বিষয়টি এড়ানো

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

আলগা সংযোগের অর্থ হ'ল এ বি কে জানে, তবে বি এ জানে না অন্য কথায়, জড়িত দুটি পক্ষ পৃথক ক্লায়েন্ট এবং সার্ভারের ভূমিকা পালন করে, যেখানে ক্লায়েন্ট সার্ভারটি জানে, কিন্তু সার্ভার ক্লায়েন্টকে চেনে না।

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

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

সুতরাং, আপনার ক্ষেত্রে ফিরে আসার জন্য, ইউআই কোড যা কম্বো-বাক্সকে হ্যামবার্গার বর্গ সম্পর্কে জানে তা নিয়ে কোনও ভুল নেই। হ্যামবার্গার ক্লাস কম্বো বাক্স সম্পর্কে কিছু জানলে সমস্যা হবে।

ঘটনাক্রমে, এই নকশাটি এমন আরও একটি জিনিসকে মঞ্জুরি দেয় যা আপনার এমন সিস্টেমের কাছ থেকে আশা করা উচিত: আপনার যুক্তি অনুসারে যতগুলি ভিন্ন ইউআইআই প্লাগ করা সম্ভব হবে এবং পুরো জিনিসটি এখনও কাজ করা উচিত।


5

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

সুতরাং আপনার ক্ষেত্রে, Hamburgerবস্তুগুলি মডেলের অংশ হবে। তারপরে আপনি প্রয়োজনীয় কন্ট্রোলারগুলি আনার জন্য আপনার কন্ট্রোলারটি ব্যবহার করেন Hamburgerএবং সেই বস্তুগুলি প্রদর্শন করার জন্য (কম্বোবক্স) পাস করুন। যখন আপনার ব্যবহারকারী কোন হ্যামবার্গার নির্বাচন করেছেন, আপনি তারপরে Hamburgerপ্রসেসিংয়ের জন্য পুনরায় নিয়ন্ত্রকের কাছে বস্তুটি পাস করতে পারেন ।

মুল বক্তব্যটি হ'ল আপনি এখনও "ফ্যাচ Hamburgerএস" লজিক এবং Hamburgerহ্যামবার্গারের প্রকৃত প্রদর্শন থেকে আলাদা করে "প্রক্রিয়া " যুক্তি পরীক্ষা করতে পারেন ।


আমি বুঝেছি. তবে আমি যদি হামবুর্গার ক্লাসটি সংশোধন করি তবে আমাকে কি ফর্মের কোডটিও পরিবর্তন করতে হবে না যা হামবুর্গার অবজেক্টের সাথে সম্পর্কিত? তখন ইউআই-লজিকের বিচ্ছেদ কোথায়?
উরি

2
হ্যামবার্গার মডেল অংশ। আপনি যখন মডেলটি পরিবর্তন করেন, আপনি ভিউ এবং নিয়ামকটি সংশোধন করে শেষ করেন। মডেলটি হ'ল ইউআই এবং যুক্তিগুলির মধ্যে বিচ্ছেদ। এটির স্পর্শ করতে উচ্চ ব্যয় হয়, তাই এটির নকশা করার সময় আপনার সাবধানতা অবলম্বন করা উচিত।
সাইমন বার্গোট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.