প্রোগ্রামিং চলাকালীন, প্রায়শই আমরা এমন পরিস্থিতিগুলি দেখতে পাই যেখানে আমাদের একটি সম্পূর্ণ টুকরো কোড পুনরায় ব্যবহার করতে হবে। কোডটির পুনর্লিখন প্রোগ্রামটির দক্ষতা হ্রাস করার সময় প্রোগ্রামটিকে বিশাল করে তোলে। সুতরাং, জাভা আমাদের একটি দুর্দান্ত বৈশিষ্ট্য সরবরাহ করে যা উদ্ধার এই ভারী কাজ থেকে। এটি জাভাতে ক্লোনিং হিসাবে পরিচিত এবং এই নিবন্ধটির মাধ্যমে, আমি আপনাকে এটিতে সম্পূর্ণ অন্তর্দৃষ্টি দেব।
এই নিবন্ধে আমি যে বিষয়গুলি নিয়ে আলোচনা করব তার নীচে:
জাভাতে ক্লোনিং
জাভাতে অবজেক্ট ক্লোনিং হ'ল আসল অবজেক্টের হুবহু কপি তৈরি করার প্রক্রিয়া। অন্য কথায়, এটি মূল অবজেক্ট থেকে সমস্ত ডেটা এবং বৈশিষ্ট্য অনুলিপি করে একটি নতুন অবজেক্ট তৈরির একটি উপায়। এটি কেবলমাত্র ক্লোন () পদ্ধতি প্রয়োগ করেই সম্ভব java.lang.Object ক্লাস ক্লোন পদ্ধতিটি কোনও অবজেক্টের সঠিক কপি তৈরি করে যার জন্য এটি হয়েছেফিল্ড-বাই-ফিল্ড অ্যাসাইনমেন্ট অর্ডারে অনুরোধ করা হয়েছে এবং নতুন অবজেক্ট রেফারেন্সটি ফিরিয়ে দেবে । একটি জিনিস যা আপনাকে অবশ্যই মনে রাখতে হবে, জাভাতে, ক্লোন ইন্টারফেস যা মার্কার ইন্টারফেস রূপায়িত করে এমন বস্তুগুলিকে ক্লোন ব্যবহার করার অনুমতি দেওয়া হয় ()।
জাভাতে কী ক্লোনিং করছে তা আপনি এখন অবগত রয়েছেন আসুন এই বৈশিষ্ট্যটি ব্যবহারের বিভিন্ন সুবিধা দেখতে দিন।
জাভাতে ক্লোনিংয়ের সুবিধা
নীচে আমি জাভাতে ক্লোনিং ব্যবহারের কয়েকটি আকর্ষণীয় বৈশিষ্ট্য নীচে লিখেছি।
ডায়াগ্রাম সহ জাভাতে এমভিসি আর্কিটেকচার
- কোডের লাইনগুলি হ্রাস করতে সহায়তা করে।
- অনুলিপি করার সবচেয়ে কার্যকর এবং দক্ষ উপায়বস্তু
- এছাড়াও, ক্লোন () অ্যারে অনুলিপি করার জন্য দ্রুততম পদ্ধতি হিসাবে বিবেচিত হয়।
দ্রষ্টব্য: যদিও ক্লোনিং ব্যবহারের ফলে কিছু নকশা সমস্যা দেখা দিতে পারে তবে আপনি যদি এটি সঠিক কৌশলগত উপায়ে ব্যবহার করেন তবে এটি আপনার উপকার করতে পারে।
জাভাতে ক্লোনিংয়ের প্রকারগুলি
জাভাতে ক্লোনিংকে গ্রুপ করা যেতে পারেদুটি বিভাগে:
- অগভীর ক্লোনিং
- ডিপ ক্লোনিং
আসুন একে অপরের প্রত্যেকে বুঝতে পারি।
অগভীর ক্লোনিং
জাভাতে, ক্লোনিং প্রক্রিয়াটি ক্লোন () পদ্ধতিতে শুরু করে যখন তাকে শ্যালো ক্লোনিং বলে। এটি জাভাতে ডিফল্ট ক্লোনিং প্রক্রিয়া যেখানে সঠিক ক্ষেত্রের সাথে আসল বস্তুর অগভীর অনুলিপি তৈরি করা হবে। যদি আসল বস্তুর ক্ষেত্র হিসাবে অন্য কিছু বস্তুর উল্লেখ পাওয়া যায় তবে কেবলমাত্র সেই অবজেক্টের রেফারেন্সগুলি নতুন অবজেক্ট তৈরির পরিবর্তে ক্লোন করা হবে। অন্য কথায়, আপনি যদি ক্লোন করা বস্তুর মান পরিবর্তন করেন তবে তা মূল ক্ষেত্রেও প্রতিফলিত হবে। সুতরাং, অগভীর ক্লোনিং মূল বস্তুর উপর নির্ভরশীল।
নীচে আমি এর উদাহরণ দিয়েছি:
প্যাকেজ এডুরিকা ক্লাস এডুকোর্স {স্ট্রিং কোর্স 1 স্ট্রিং কোর্স 2 স্ট্রিং কোর্স 3 পাবলিক এডুকোর্স (স্ট্রিং সিআরএস 1, স্ট্রিং সিএস 2, স্ট্রিং সিআরএস 3) {এই সিওএস 1 = সিআর 1 this.cورس2 = সিআর 2 this.cورس3 = সিআরএস 3} ক্লাস এডু লেয়ারার সরঞ্জাম ক্লোনযোগ্য {ইন্টিনাম স্ট্রিং এডুকোর্স এডুক্স পাবলিক এডুক্লার্নার (ইন্টু এডুআইডি, স্ট্রিং লার্নারনাম, এডুকোর্স এডুকোর্স) {this.eduId = eduId this.learnerName = LearnerName this.eduCourse = eduCourse} // ক্লোনটির ডিফল্ট সংস্করণ () পদ্ধতির সুরক্ষিত অবজেক্ট ক্লোনেক্স (ক্লোনকোন) ছোঁড়ে .ক্লোন ()}} পাবলিক ক্লাস শ্যালোক্লোনসাম্পল {পাবলিক স্ট্যাটিক শূন্যস্থানীয় প্রধান (স্ট্রিং [] আর্কস) {এডুকোর্স জে 2 ই = নতুন এডুকোর্স ('জাভা', 'স্প্রিং', 'মাইক্রোসার্ভেসি)) এডুক্লার্নার লার্নার 1 = নতুন এডু লেয়ারার (2811,' ম্যাক্স) , j2ee) এডুক্লার্নার লার্নার 2 = নালার চেষ্টা করুন {// লার্নার 1 এর ক্লোন তৈরি করা এবং এটিকে লার্নার 2 লার্নার 2 = (এডলিয়ারার) লার্নার 1 ক্লোন ()} ধরা (ক্লোননটসপোর্টড এক্সেক্সেশন ই) {ই.প্রিন্টস্ট্যাকট্রেস () Prin // মুদ্রণের বিবরণ System.out.p rintln ('শিক্ষানবিশ 2 এর বিবরণ:') System.out.println ('আইডি:' + শিক্ষক 1.eduId) System.out.println ('নাম:' + শিক্ষানবিশ.আর্লিনারনাম) System.out.println ('কোর্স আইডি: '+ Learner1.eduCourse) //' শিক্ষানবিশ 'সিস্টেম.আউট.প্রিন্টলনের (' শিক্ষানবিশ 1: 'এর কোর্সসমূহ) সিস্টেম.আউট.প্রিন্টলন (শিক্ষানবিশ। eduCourse.cورس2) System.out.println (Learner1.eduCourse.cورس3) // শিখুন 2 সিস্টেম.আউট.প্রিন্টলনের মুদ্রণ বিবরণ ('শিক্ষানবিশ 2:' এর বিবরণ) System.out.println ('আইডি:' + শিক্ষক 2.eduId ) System.out.println ('নাম:' + শিক্ষণার্থী 2। এলিয়েনারনেম) System.out.println ('কোর্স আইডি:' + শিক্ষক 2.eduCourse) // 'শিক্ষক 2' সিস্টেম.আউট.প্রিন্টলন ('কোর্সসমূহের সমস্ত কোর্স মুদ্রণ) লার্নার 2: ') সিস্টেম.আউট.প্রিন্টলন (লার্নার 2.eduCourse.cورس1) System.out.println (শিক্ষক 2.eduCourse.cورس2) System.out.println (শিক্ষক 2.eduCourse.cورس3) //' শিখুন 2 এর কোর্স 3 পরিবর্তন করা 'learnner2.eduCourse.cورس3 =' জেএসপি '// এই পরিবর্তনটি মূল' লার্নার 1 'সিস্টেম.আউট.প্রিন্টলনে প্রতিফলিত হবে (' লার্নার 2: ') আপডেট হওয়া কোর্সসমূহ' 'সিস্টেম.আউট.প্রিন্টলন (লার্নার 1.ইডুকোর্স।
আউটপুট:
লার্নার 2 এর বিবরণ: আইডি: 2811 নাম: সর্বোচ্চ কোর্স আইডি: এডুকোর্স @ 15db9742 শিক্ষাব্রতীর কোর্স 1: জাভা স্প্রিং মাইক্রোসার্ভেসেসস লার্নারের 2: আইডি: 2811 নাম: সর্বাধিক কোর্স আইডি: এডুকোর্স @ 15db9742 শিখার কোর্স 2: জাভা স্প্রিং মাইক্রোসার্ভেসেস লার্নার 2 এর আপডেট কোর্স: জাভা স্প্রিং জেএসপি
জাভাতে ডিপ ক্লোনিং
জাভাতে, ক্লোনেবল ইন্টারফেস প্রয়োগ করে ক্লোনিং প্রক্রিয়া করা হয় তখন একে ডিপ ক্লোনিং বলে। এই ধরণের ক্লোনিংয়ে, আসল অবজেক্টের সমস্ত ক্ষেত্রের একটি সঠিক অনুলিপি তৈরি করা হবে। তবে সেক্ষেত্রে মূল অবজেক্টের ক্ষেত্র হিসাবে অন্যান্য বস্তুর উল্লেখ রয়েছে তবে ক্লোন () পদ্ধতিটি কল করে objects বস্তুর অনুলিপি তৈরি করা হবে। এটি ক্লোন করা বস্তুকে মূল বস্তুর থেকে পৃথক করে তোলে এবং যে কোনও একটিতে যে কোনও পরিবর্তন করা হয়েছে তা অন্যটিতে প্রতিফলিত হবে না।
জাভা দুই সংখ্যা যোগ
নীচে আমি এর উদাহরণ দিয়েছি:
প্যাকেজ এডুরিকা ক্লাস এডুকোর্স ক্লোনযোগ্য {স্ট্রিং কোর্স 1 স্ট্রিং কোর্স 2 স্ট্রিং কোর্স 3 পাবলিক এডুকোর্স (স্ট্রিং সিআরএস 1, স্ট্রিং সিএস 2, স্ট্রিং সিআর 3) {this.cورس1 = crs1 this.cورس2 = crs2 this.cورس3 = crs3} সুরক্ষিত অবজেক্ট ক্লোন () ক্লোননটসপোর্টড ছুড়ে ফেলেছে রিটার্ন সুপারক্লোন ()}} ক্লাস এডুক্লার্নার ক্লোনেবেল e ইন্ট এডিউড প্রয়োগ করে স্ট্রিং লার্নার নাম এডুকোর্স এডুকোর্স পাবলিক এডুক্লার্নার (ইন্ট এডুআইডি, স্ট্রিং লার্নার নেম, এডুকোর্স এডুকোর্স) {this.eduId = eduId this.orternerName = শিক্ষানুসার} সুরক্ষিত অবজেক্ট ক্লোনটির গভীর অনুলিপি তৈরি করার জন্য ওভাররাইডিং ক্লোন () পদ্ধতিটি ক্লোননটসপোর্টডএক্সেপশন du এডলয়ার্নার লার্নার = (এডুএলনার) সুপার.ক্লোন () লার্নার.এডু কোর্স = (এডুকোর্স) eduCourse.clone () রিটার্ন লার্নার}} পাবলিক ক্লাস ডিপক্লোনসাম্পল {পাবলিক স্ট্যাটিক অকার্যকর প্রধান (স্ট্রিং [] টিমস) {এডুকোর্স জে 2 ই = নতুন এডুকোর্স ('জাভা', 'স্প্রিং', 'মাইক্রোসার্ভেসিস)' এডু লেয়ার্নার লার্নার 1 = নতুন এডু লেয়ারার (2811, 'ম্যাক্স', জে 2 আই) এডুক্লার্নার শিখুন er2 = নালার চেষ্টা করুন {// লার্নার 1 এর ক্লোন তৈরি করা এবং এটি লার্নার 2 লার্নার 2 = (এডুয়ার্নার) লার্নার 1 ক্লোন () কে ধরা Cl println ('শিক্ষানবিশ 2 এর বিবরণ:') System.out.println ('আইডি:' + শিক্ষক 1.eduId) System.out.println ('নাম:' + শিক্ষানবিশ। '+ Learner1.eduCourse) //' শিক্ষানবিশ 'সিস্টেম.আউট.প্রিন্টলনের (' শিক্ষানবিশ 1: 'এর কোর্সসমূহ) সিস্টেম.আউট.প্রিন্টলন (শিক্ষানবিশ। eduCourse.cورس2) System.out.println (Learner1.eduCourse.cورس3) // শিখুন 2 সিস্টেম.আউট.প্রিন্টলনের মুদ্রণ বিবরণ ('শিক্ষানবিশ 2:' এর বিবরণ) System.out.println ('আইডি:' + শিক্ষক 2.eduId ) System.out.println ('নাম:' + শিক্ষণার্থী 2। এলিয়েনারনেম) System.out.println ('কোর্স আইডি:' + শিক্ষক 2.eduCourse) // 'শিক্ষক 2' সিস্টেম.আউট.প্রিন্টলন ('কোর্সসমূহের সমস্ত কোর্স মুদ্রণ) লার্নার 2: ') সিস্টেম.আউট.প্রিন্টলন (লার্নার 2.eduCourse.cورس1) সিস্টেম.আউট.প্রিন্টল n (learnner2.eduCourse.cورس2) System.out.println (Learner2.eduCourse.cورس3) // 'শিক্ষানবিশ' এর পাঠ্যক্রমের পরিবর্তন 3। 'জেএসপি' // এই পরিবর্তনটি আসল প্রতিফলিত হবে না ' শিক্ষানবিশ '' সিস্টেম.আউট.প্রিন্টলন ('লার্নার 1:' এর কোর্স) 'সিস্টেম.আউট.প্রিন্টলন (লার্নার 1.eduCourse.cورس1) System.out.println (শিক্ষক 1.eduCourse.cورس2) System.out.println (শিখুন1.eduCourse)। কোর্স 3) // লার্নার 2 সিস্টেম.আউট.প্রিন্টলনের আপডেটেড কোর্স ('লার্নার 2:') কোর্সেস.স.আউট.প্রিন্টলন (লার্নার 2। মুদ্রণ (শিখুন 2.eduCourse.cورس3)}
আউটপুট:
শিক্ষার্থী 2: আইডি: 2811 নাম: সর্বাধিক কোর্স আইডি: edureka.EduCourse@15db9742 শিক্ষাব্রতীর কোর্স 1: জাভা স্প্রিং মাইক্রোসার্ভেসিস শিখার বিবরণ 2: আইডি: 2811 নাম: সর্বাধিক কোর্স আইডি: edureka.EduCourse@6d06d69c পাঠ্যক্রমের কোর্স 2 : জাভা স্প্রিং মাইক্রোসার্ভেসিস লার্নার্স কোর্স 1: জাভা স্প্রিং মাইক্রোসার্ভেসিস লার্নার 2: কোর্স জাভা স্প্রিং জেএসপি
এটি জাভাতে ক্লোনিং সম্পর্কিত এই নিবন্ধটির শেষে নিয়ে আসে। আপনি যদি জাভা সম্পর্কে আরও জানতে চান তবে আমাদের আমাদের উল্লেখ করতে পারেন ।
জাভাতে ক্লোনিং কী তা আপনি বুঝতে পেরেছেন, এটি পরীক্ষা করে দেখুন এডুরেকা, বিশ্বস্ত জুড়ে 250,000 এরও বেশি সন্তুষ্ট শিক্ষার্থীর নেটওয়ার্ক সহ একটি বিশ্বস্ত অনলাইন লার্নিং সংস্থা by এডুরেকার জাভা জে 2 ইই এবং এসওএ প্রশিক্ষণ এবং শংসাপত্রের কোর্সটি এমন শিক্ষার্থী এবং পেশাদারদের জন্য তৈরি করা হয়েছে যারা জাভা ডেভেলপার হতে চান। কোর্সটি আপনাকে জাভা প্রোগ্রামিংয়ে একটি প্রধান সূচনা দেওয়ার জন্য এবং হাইবারনেট ও স্প্রিংয়ের মতো বিভিন্ন জাভা ফ্রেমওয়ার্কের পাশাপাশি মূল এবং উন্নত জাভা উভয় ধারণার জন্য প্রশিক্ষণের জন্য তৈরি করা হয়েছে।
আমাদের জন্য একটি প্রশ্ন আছে? দয়া করে এই 'জাভায় ক্লোনিং' নিবন্ধের মন্তব্য বিভাগে উল্লেখ করুন এবং আমরা যত তাড়াতাড়ি সম্ভব আপনার কাছে ফিরে আসব।