"রিয়েল ওয়ার্ল্ড" এ আলগা / আঁটসাঁটা দম্পতি বোঝা


9

আমি কোন "সম্প্রদায়" বলব না কারণ আমি একটি পক্ষপাতদুষ্ট ব্যাখ্যা চাই, তবে আসুন আমরা বলি আপনি একটি পুনরায় ব্যবহারযোগ্য মডিউল তৈরি করছেন এবং সেই মডিউলটির জন্য 3+ নির্ভর মডিউল প্রয়োজন এবং সেগুলির 1 টি অপসারণ করে কেবল আপনার অ্যাপ্লিকেশনটিতে একটি ব্রেকিং ত্রুটির কারণ নয় সম্পূর্ণ যা এই মডিউলটি ব্যবহার করে তবে মডিউলটি নিজেই।

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

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


2
এটি কিছুটা বিতর্ক করার মতো যা আপনি একটি গাড়ী থেকে টায়ারগুলি সরিয়ে ফেলতে পারেন এবং এটি এখনও ঠিক কাজ করবে
রাইথাল

1
@ রাইঠাল - ঠিক আছে, আসলে এটি হবে :) "গাড়ি" ঠিকঠাক কাজ করবে। এটিতে কোনও টায়ার থাকবে না তবে এটি কাজ করবে ভাল। প্রকৃতপক্ষে, আপনি যদি চান তবে আপনি চাকাগুলি নষ্ট করতে পারেন, তবে আপনি আসলে এটি চালনাও করতে পারেন। কিছুটা অচল হতে পারে :)
রক

হ্যাঁ, ঠিক যেমনটি @ldigas বলেছে। গাড়ী শুরু হবে, রেডিও কাজ করবে, সবকিছু কাজ করবে, তবে আন্দোলনের অংশ। আমি যা বলার চেষ্টা করছিলাম তা হ'ল।
অস্কার গডসন

উত্তর:


21

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


+1: দুর্দান্ত উত্তর! মডিউলগুলি অবশ্যই অন্যান্য মডিউলের উপর নির্ভর করতে হবে তবে তাদের অভ্যন্তরীণ প্রয়োগের উপর নয়।
জর্জিও

5

আলগা সংযোগগুলি মডিউলগুলির মধ্যে কীভাবে তারা বিকাশ করতে পারে তার মধ্যে পরোক্ষ নির্ভরতা।

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

স্বতন্ত্র কার্যকারিতার জন্য দায়বদ্ধ যদিও এই জাতীয় মডিউলগুলি স্বাধীনভাবে বিকশিত হতে পারে না বা বিকশিত হতে পারে না


একটি উদাহরণ:

ধরা যাক আপনার 3 টি অবজেক্ট Shape(একটি মডেল অবজেক্ট) এবং Canvas(একটি ইউআই উপাদান) রয়েছে। এখন

ধরে নিন যে কোনও পদ্ধতিটি shape.draw(Canvas)ক্যানভাসের বিমান দ্বারা সরবরাহ করা সমতলে একটি বস্তু আঁকবে।

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

shape::draw(Canvas) {
   Rect.WindowLeft = Canvas.GetWindowRect.getLeftOffset(); 
   Rect.LeftPixel = Canvas.GetWindowRect.pixels() + Rect.WindowLeft; 
   ....  // like this get all co-ordinates. 

   draw_instance(Rect);  // This will draw the actual shape. 
}

মূলত, এখানে অঙ্কন ফাংশনটি আয়তক্ষেত্রটি তুলেছে যেখানে জিনিসগুলি আঁকতে হবে। এই সহজবোধ্য (মানুষ এই কল পারে সহজ কোড)। তবে এটি অত্যন্ত যুগল কোড led

পরিস্থিতিটি কল্পনা করুন:

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

সমস্যার মূল কারণ হ'ল অবজেক্টটি shape জানে এবং সেইজন্য দৃ tight়তার সাথে মিলিত হয় Canvas

পিক্সেল সেটটি যেখানে লিখেছে সেখানে আকৃতি দেওয়ার জন্য কী আকাঙ্ক্ষিত; shapeপিক্সেলগুলি আসলে কোথায় রচিত তা সম্পর্কে (এমনকি অন্তর্নিহিত) জ্ঞান থাকা উচিত নয়।


0

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

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

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