আলগা সংযোগগুলি মডিউলগুলির মধ্যে কীভাবে তারা বিকাশ করতে পারে তার মধ্যে পরোক্ষ নির্ভরতা।
সাধারণত, যখন একটি শক্তভাবে সংযুক্ত সিস্টেম থাকে তখন বিভিন্ন মডিউল / অবজেক্টগুলির একটি খুব নির্দিষ্ট আচরণ থাকে যা পেরিফেরিয়াল অবজেক্টগুলির আচরণ হিসাবে ধরে নেয়। এই জাতীয় অবজেক্টগুলি অন্য মডিউলগুলির আচরণের সাথে যুক্ত / সংযুক্ত এবং এগুলি বিচ্ছিন্নভাবে বা অন্য কোনও প্রসঙ্গে পুনরায় ব্যবহার করা যাবে না।
স্বতন্ত্র কার্যকারিতার জন্য দায়বদ্ধ যদিও এই জাতীয় মডিউলগুলি স্বাধীনভাবে বিকশিত হতে পারে না বা বিকশিত হতে পারে না
একটি উদাহরণ:
ধরা যাক আপনার 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পিক্সেলগুলি আসলে কোথায় রচিত তা সম্পর্কে (এমনকি অন্তর্নিহিত) জ্ঞান থাকা উচিত নয়।