আমার শেষ নিবন্ধটি অনুসরণ করে, আমরা কেন শূন্য ব্যবহার করি, আমি ভেবেছিলাম যে অন্যান্য বিষয়গুলির জন্য এই প্রশ্নটি জিজ্ঞাসা করা একটি ভাল ধারণা যা আমরা গ্রহণ করি।
লাইক…
কুৎসিত কোডের শুধুমাত্র একটি বিশাল ব্লব থাকার পরিবর্তে কেন আমরা ক্লাস ব্যবহার করি?
একটি মৌলিক স্তরে, আমরা লজিক্যাল ইউনিটে কোড এবং ডেটা সংগঠিত করার জন্য ক্লাস ব্যবহার করি।
কিন্তু এর থেকে আরো অনেক কিছু আছে।
একটি ক্লাস আপনাকে একটি বিমূর্ততা তৈরি করতে দেয় .
একটি বিমূর্ততা কি?
আপনি প্রতি এক দিন, প্রতি এক মিনিটে বিমূর্ততা ব্যবহার করেন।
কীবোর্ড আমি এটি টাইপ করছি এটি থেকে তৈরি:
- একটি তারের
- চেরি এমএক্স কালো সুইচগুলি ৷
- প্লাস্টিকের আবরণ যা সবকিছুকে একত্র করে রাখে
- সার্কিট বোর্ড যা আমার কম্পিউটারে বৈদ্যুতিক সংকেত প্রেরণ করে
একটি কীবোর্ড একটি ধারণা যা এই জিনিসগুলিকে সঠিক উপায়ে একত্রিত করার মাধ্যমে উদ্ভূত হয়৷
৷এটি একটি বিমূর্ততা কারণ এটি অভ্যন্তরীণভাবে কীভাবে কাজ করে তা আপনার জানার প্রয়োজন নেই এটা ব্যবহার করতে এটি যে উপাদানগুলি দিয়ে তৈরি তা আপনার জানারও দরকার নেই!
আপনি শুধু এটি প্লাগ ইন করুন এবং টাইপ করা শুরু করুন৷
৷ঠিক এটাই ক্লাস আপনাকে করতে দেয়।
বিমূর্ততা কেন গুরুত্বপূর্ণ?
বিমূর্ততা আপনাকে জটিলতা পরিচালনা করতে সাহায্য করে .
স্টিভ ম্যাককনেল যেমন বলেছেন:
“একক সবচেয়ে গুরুত্বপূর্ণ একটি ক্লাস তৈরি করার কারণ হল একটি প্রোগ্রামের জটিলতা হ্রাস করা ”
বিমূর্ততা কিভাবে এটি সম্পন্ন করে?
বিশদ বিবরণ লুকিয়ে কিভাবে কিছু কাজ করে এবং একটি সর্বজনীন ইন্টারফেসের সাথে তার পরিষেবাগুলিকে প্রকাশ করে।
একটি রুবি ক্লাসে ইন্টারফেসটি তার পাবলিক পদ্ধতি নিয়ে গঠিত। যদিও বিশদগুলি ব্যক্তিগত পদ্ধতিতে লুকানো থাকে।
বিশদ বিবরণ সহ মানে:
- ইনস্ট্যান্স ভেরিয়েবল
- অভ্যন্তরীণ পদ্ধতি
- অ্যালগরিদম এবং ডেটা স্ট্রাকচার
যখন সেগুলি লুকানো থাকে তখন আপনি যখন চান তখনই পরিবর্তন করতে পারেন, আপনার ক্লাসের ব্যবহারকারীদের প্রভাবিত না করে৷
উদাহরণস্বরূপ :
আপনার যদি একটি GPS
থাকে ক্লাস যা ডেটা সঞ্চয় করার জন্য একটি অ্যারে ব্যবহার করে এবং আপনাকে এটি সূচক 0-এ জানতে হবে সেই অ্যারের আপনি অক্ষাংশ এবং সূচী 1 পাবেন দ্রাঘিমাংশ, এগুলি বিশদ বিবরণ যা আপনার জানা উচিত নয়৷ ক্লাসের একজন ব্যবহারকারী হিসেবে।
কিভাবে ভালো ক্লাস লিখতে হয়
এখন, এটি একটি বড় বিষয় .
একটি ভাল ক্লাস তৈরি করতে অনেক কিছু যায়, যেমন সলিড নীতিগুলি অনুসরণ করা।
কিন্তু সবচেয়ে গুরুত্বপূর্ণ, আপনার ক্লাসের কোনো না কোনো ভুমিকা থাকতে হবে , এবং এলোমেলো পদ্ধতি দ্বারা গঠিত হবে না।
উদাহরণস্বরূপ, আপনি প্রেজেন্টেশন লজিক (ফরম্যাটিং) থেকে বিজনেস লজিক (গণনা, নিয়ম) আলাদা করতে চান কারণ সেগুলি আলাদা ভূমিকা।
এই কোডটি দেখুন :
require 'rest-client' require 'nokogiri' class ImageCounter def initialize(url) @url = url end def find_images_and_report data = RestClient.get(@url).body html = Nokogiri::HTML.parse(data) images = html.css("img") report = "" report << "=" * 40 << "\n" report << "Found #{images.size} images on #{@url} \n" report << "=" * 40 << "\n" end end reporter = ImageCounter.new("rubyguides.com") report = reporter.find_images_and_report
আপনি দেখতে পাচ্ছেন যে এই ক্লাসটি গণনা এবং উপস্থাপনা উভয়ের সাথে কীভাবে সম্পর্কিত। আপনি যদি একটি "দ্রুত এবং নোংরা" স্ক্রিপ্ট লিখছেন তবে এটি ভাল, তবে আরও গুরুতর অ্যাপ্লিকেশনের জন্য আপনি সেগুলিকে আলাদা করতে চান৷
যখন আপনি দায়িত্বগুলি আলাদা করেন তখন আপনি একটি ভিন্ন উপস্থাপনা স্তর প্লাগ ইন করতে পারেন, অথবা আপনি ব্যবসার নিয়ম পরিবর্তন করতে পারেন এবং একই উপস্থাপনা পুনরায় ব্যবহার করতে পারেন৷
এই কোড পুনঃব্যবহার ক্লাসের দৃষ্টিভঙ্গি তাদের আরও বেশি লেখার আরেকটি ভাল কারণ।
আপনাকে আরও ভাল ক্লাস লিখতে সাহায্য করার জন্য আরও ধারণা রয়েছে৷
আপনাকে আরও অন্বেষণ করতে সহায়তা করার জন্য এখানে কিছু রয়েছে:
- সমন্বয় এবং সংযোগ
- বলুন, জিজ্ঞাসা করবেন না
- ডিমিটারের আইন
কেন আমরা প্রথম স্থানে ক্লাস লিখি তা জানাটা শুরু করার জন্য একটি ভাল জায়গা, তাই ভাল কাজ আপনি যদি পুরো নিবন্ধটি পড়েন!
সারাংশ
আপনি শিখেছেন কেন আমরা ক্লাস লিখি, বিমূর্ততা কী এবং কেন এটি গুরুত্বপূর্ণ। আপনি ভাল ক্লাস লেখার মৌলিক বিষয়গুলিও শিখেছেন এবং আমি আপনাকে কী বিষয়ে আরও পড়তে হবে তার কিছু নির্দেশনা দিয়েছি।
আপনি যদি না চান যে আপনার কোড একটি কাদার বড় বল হয়ে উঠুক আপনার ক্লাস ডিজাইন 🙂
উন্নত করতে এখনই এই ধারণাগুলির কিছু প্রয়োগ করা শুরু করুনএই নিবন্ধটি টুইটারে শেয়ার করতে ভুলবেন না যদি আপনি এটি দরকারী বলে মনে করেন!