কীভাবে আপনার কোডটি অবজেক্ট এনক্যাপসুলেশন দিয়ে পরিষ্কার রাখবেন

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

আপনার ক্লাসের দরকার কেন

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

সীমাবদ্ধ অ্যাক্সেস অনেক বিশৃঙ্খলা সৃষ্টি করে। একটি piglet ব্যবহারসমূহ পশু তার পরামিতি নির্ধারণ করতে, তাহলে পশু piglet বৈশিষ্ট্যাবলী থাকবে। এখন, ধরা যাক একটি ছাগল তার পরামিতিগুলি সংজ্ঞায়িত করার জন্য প্রাণী র সিদ্ধান্ত নিয়েছে।

জাভাস্ক্রিপ্ট / টাইপসক্রিপ্ট এ, এটি দেখতে হবে:

 var animal = {name: "piglet", legs: 4, color: "pink", decoration: "snout"}
animal.name = "goat"
animal.decoration = "horns"

আপনি জানেন যে পরবর্তী জিনিস, আপনি শিং সঙ্গে গোলাপী ছাগল এবং piglet পেয়েছেন। টাইপস্ক্রিপ্ট স্যান্ডবক্সে কর্মে কোডটি দেখুন এবং তারপরে কনসোল আউটপুট দেখতে রান ক্লিক করুন।

যদি আপনি প্রোগ্রামিং শিখতে থাকেন এবং একটি পোষা প্রাণী চিড়িয়াখানা তৈরির পাশাপাশি অনুপ্রেরণা চান, আপনাকে অনুপ্রাণিত করার জন্য আরও 10 টি প্রকল্প এখানে রয়েছে

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

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

ক্লাস পর্যাপ্ত নয়; আপনার অবজেক্ট ভেরিয়েবলগুলির খুব বেশি এনক্যাপসুলেশন প্রয়োজন

সুতরাং আমরা সিদ্ধান্ত নিয়েছি যে প্রতিটি প্রাণীর নিজস্ব জিনিস প্রয়োজন। আসুন একটি শ্রেণি তৈরি করুন যা আমাদের প্রাণীদের সংজ্ঞা দেবে।

 class Animal {
name: string;
legs: number;
color: string;
decoration: string;
constructor(name: string, legs: number, color: string, decoration: string) {
this.name = name;
this.legs = legs;
this.color = color;
this.decoration = decoration;
}
}

এর পরে, চলুন কয়েকটা প্রাণী বস্তু তৈরি করা যাক।

 let babyDuck = new Animal("baby duck", 2, "yellow", "beak");
let bunny = new Animal("bunny", 4, "gray", "floppy ears");

এখন পর্যন্ত কোড দিয়ে খেলুন।

এখন আমরা কোনও অদ্ভুত মিউটেশন ছাড়াই আমাদের যে সমস্ত প্রাণী চাই তা জুড়তে পারি। নাকি আমরা পারি?

যদি এক রাতে, ক্লান্ত প্রোগ্রামার ক্রাইপি-ক্রোলি অ্যাপ্লিকেশন থেকে কোনও প্রাণী সম্পাদনা করার জন্য কিছু কোড লিখেছিল তবে কী হবে?

 bunny.color = "black";
bunny.legs = 8;

মাকড়সা বানিতে ঠান্ডা হয় না মানুষ! এটি ঠিক ততটা খারাপ যখন আমরা আমাদের কোডকে বস্তুকে আবদ্ধ করি নি। আসুন নিশ্চিত হন যে আর কখনও না ঘটে।

আমাদের প্রথম জিনিসটি করার দরকার তা হ'ল আমাদের অবজেক্টগুলিকে ব্যক্তিগত করা । এর অর্থ হ'ল আমাদের ভেরিয়েবলগুলি তৈরি করার পরে কোনও কিছুই সরাসরি সম্পাদনা করতে পারে না। এখানে কোডটি দেখানো হচ্ছে যে ব্যক্তিগত ভেরিয়েবলগুলি পরিবর্তন করা একটি ত্রুটি তৈরি করে

চলকগুলি পরিবর্তনযোগ্য হওয়া দরকার, যদিও। আর সেখানেই গেটার্স এবং সেটটাররা আসেন।

গেটর এবং সেটারগুলি এমন একটি ফাংশন যা নিয়ন্ত্রিত উপায়ে ভেরিয়েবল অ্যাক্সেস এবং পরিবর্তন করে। সেটটাররা ডেটা পরিবর্তনের ক্ষেত্রে সীমাবদ্ধতা সেট করতে পারে। এবং প্রাপ্তরা পুনরুদ্ধার করা ডেটা পরিবর্তন করতে পারে।

আমাদের ক্লাসটি লেগের সংখ্যা নিয়ন্ত্রণ করতে গেট অ্যান্ড সেট ফাংশনগুলির সাথে দেখতে এটির মতো দেখাচ্ছে।

 class Animal {
private _name: string;
private _legs: number;
private _color: string;
private _decoration: string;
constructor(name: string, legs: number, color: string, decoration: string) {
this._name = name;
this._legs = legs;
this._color = color;
this._decoration = decoration;
}
get legs() {
return this._legs;
}
set legs(legCount: number) {
if(legCount > 1 && legCount < 5) {
this._legs = legCount;
}
}
}

এনক্যাপসুলেশন শিখুন এবং গ্লোবাল ভেরিয়েবলগুলি এড়িয়ে চলুন

এখানে চূড়ান্ত কোড। আপনার বোঝার বিষয়টি নিশ্চিত করতে আপনি যা শিখেছেন তা পুনরায় সংশোধন করুন:

  • বাকি ভেরিয়েবলের জন্য গেটর এবং সেটার যুক্ত করুন।
  • স্প্যান ট্যাগ হিসাবে পশুর নাম ফিরিয়ে দিন : <স্প্যান> লামা </ span>
  • একাধিক সজ্জা জন্য অনুমতি সজ্জা পরিবর্তনশীল পরিবর্তন করুন। এই পরিবর্তনটি প্রতিফলিত করতে একটি উপযুক্ত গেটর এবং সেটার তৈরি করুন।

আপনি যদি নিজের কোডটিকে একটি ভাল-তৈলযুক্ত মেশিনের মতো চালিয়ে রাখতে চান তবে আপনার অবশ্যই একেবারে এনক্যাপসুলেশন দরকার। যে কোনও মূল্যে গ্লোবাল ভেরিয়েবলগুলি এড়িয়ে চলুন। এবং যদি আপনাকে অবজেক্টগুলির মধ্যে ভেরিয়েবলগুলি ভাগ করে নেওয়া দরকার হয় তবে আপনি কীভাবে ক্লাস / স্ট্যাটিক ভেরিয়েবল তৈরি করবেন সে সম্পর্কে টাইপস্ক্রিপ্ট ডকুমেন্টেশন দেখতে পারেন।