আসোসিয়েশন (Association), এগগ্রিগেশন (Aggregation), কম্পোজিশন (Composition)
আসোসিয়েশন (Association)
অ্যাসোসিয়েশন মানে একটি অবজেক্ট এর সাথে অন্য একটি অবজেক্টের রিলেশন যেখানে ইনহেরিটেন্স ব্যবহার করা হয় না। যেমন আমরা যদি নিজের ফিগারটিতে দেখি এখানে প্রথমেই এসোসিয়েশনের সাথে একটি কোড দিয়ে উদাহরণ দেয়া হয়েছে যা আমরা নিচে দেখি, এখানে কোডটিতে VivaSoft এর সাথে রিলেশন করা হয়েছে Employee এর সাথে, কিন্তু ইনহেরিটেন্স এর মাধ্যমে নয়। একে অ্যাসোসিয়েশন বলে, যা কিনা এগগ্রিগেশন বা কম্পোজিশনের রূপ হতে পারে।
// জাভা (Java) public class VivaSoft { // Could be aggregation or composition // depending how it was referenced and used private Employee employee; }
//সি# (C#) public class VivaSoft { // Could be aggregation or composition // depending how it was referenced and used private Employee employee; }
এগগ্রিগেশন (Aggregation)
এগ্রিগেশন এর ক্ষেত্রে আমি যদি কোন একটি অবজেক্ট কারো কাছ থেকে নিয়ে আসি, যা নিচের উদাহরণে অথবা ফিগারে বা কোডে দেখতে পাচ্ছি। আমরা দেখতে পাচ্ছি যে VivaSoft এর সাথে রিলেশন করা হয়েছে Employee সাথে রেলেশিওন রয়েছে তা বাহির থেকে যে কেউ Create করে দিতে পারে ।এক্ষেত্রে Employee এর যে রেফারেন্স টা প্রোগ্রামে এই VivaSoft এর বাহিরে reference হিসাবে থেকে যেতে বা তা কখন মুছে যাবে তা আমরা জানি না, একেই এগ্রিগেশন বলা হয়।
// জাভা (Java) public class VivaSoft { private Employee employee; // has 0 … N times reference outside VivaSoft(Employee employee) { this.employee = employee; } }
// সি# (C# public class VivaSoft { private Employee employee; // has 0 … N times reference outside VivaSoft(Employee employee) { this.employee = employee; } }
কম্পোজিশন (Composition)
কম্পোজিশনের ক্ষেত্রে আমরা যে রিলেশনশিপটি করি সেই রিলেশনশিপে কোন রেফারেন্স (VivaSoft এর সাথে Employee রিলেশন) আউট সাইডে থাকবে না এটাই শুধু ডিফারেন্স.
// জাভা (Java) public class VivaSoft { private Employee employee = new Employee(); // 0 Reference outside }
//সি# (C#) public class VivaSoft { private Employee employee = new Employee(); // 0 Reference outside }