অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং: সংজ্ঞা

প্রোগ্রামিং প্রয়োগের ক্ষেত্রগুলির বৈচিত্র্য, বিভিন্ন ধরণের ভাষার জন্ম দেয়। এই নিবন্ধে আমরা আবিষ্কার করব অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং কি এবং বস্তু ভিত্তিক প্রোগ্রামিং ভাষা কি ধরনের বিদ্যমান আছে। আপনার জ্ঞান প্রসারিত করার সাহস!

অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং

অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং

সাধারণভাবে, প্রোগ্রামিং কম্পিউটারে কমান্ড প্রেরণের জন্য একটি ভাষার জ্ঞান প্রয়োজন, এবং একটি অ্যালগরিদম একটি প্রোগ্রামে রূপান্তরিত হয়, কিন্তু প্রোগ্রামিং কি?

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

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

একটি প্রোগ্রাম এমন একটি প্রোগ্রামিং ভাষায় লিখতে হবে যা ব্যবহারকারীর বোধগম্য। এটি হওয়ার জন্য, প্রোগ্রামারকে অবশ্যই অনেক বিদ্যমান প্রোগ্রামিং দৃষ্টান্তের মধ্যে একটি গ্রহণ করতে হবে, যা দৃষ্টি নির্ধারণ করে এবং সেইজন্য, নির্মাণের ক্ষেত্রে অনুসরণ করার পদ্ধতিগুলির পছন্দ।

প্রোগ্রামিং দৃষ্টান্ত

প্রোগ্রামিং এবং প্রযুক্তির অগ্রগতি বিভিন্ন প্রোগ্রামিং পদ্ধতি বা দৃষ্টান্তের জন্ম দিয়েছে। এইগুলি, পরিবর্তে, প্রোগ্রামিংয়ের বিভিন্ন শৈলী এবং সমস্যা সমাধানের বিভিন্ন রূপের দিকে পরিচালিত করেছে। এখানে বিদ্যমান দৃষ্টান্ত রয়েছে:

অপরিহার্য দৃষ্টান্ত

এটি বলে যে প্রোগ্রামগুলি উপরে থেকে নীচে নির্দেশাবলীর একটি কঠোর ক্রম, যা কেবল কোথাও একটি সাব -প্রোগ্রাম অন্তর্ভুক্ত করার মাধ্যমে বাধাগ্রস্ত হয়।

কাঠামোগত দৃষ্টান্ত

এটি পদ্ধতি এবং ফাংশনের ব্লক দ্বারা শ্রেণিবদ্ধ কোড কাঠামো প্রয়োগ করে। কোডটি একটি লুপ আকারে পুনরুত্পাদন করা হয়, একটি যৌক্তিক কারণ দ্বারা প্রভাবিত।

ঘোষণামূলক দৃষ্টান্ত

এটি একটি সমস্যা সমাধানের জন্য প্রয়োজনীয় ক্রিয়াকলাপগুলি সম্পাদন করার আদেশটি প্রতিষ্ঠিত করে না। এর মধ্যে, দুটি প্রকার আলাদা করা হয়: কার্যকরী দৃষ্টান্ত, যেখানে সমস্যা এবং সমাধানকে ফাংশন হিসাবে বর্ণনা করা হয় এবং যৌক্তিক দৃষ্টান্তের ভিত্তিতে যৌক্তিক দৃষ্টান্ত।

ইভেন্ট প্রোগ্রামিং দৃষ্টান্ত

এটি সমস্যাটি সনাক্ত করতে এবং এটি কীভাবে সমাধান করা যায় তা প্রতিষ্ঠার জন্য অসীম পুনরাবৃত্তির উপর ভিত্তি করে।

সমান্তরাল, বিতরণ এবং সমকালীন দৃষ্টান্ত

প্রোগ্রামটি বাস্তবায়নের জন্য গণনার বেশ কয়েকটি ইউনিট প্রয়োজন। রুটিনগুলি অন্যান্য কম্পিউটিং ইউনিটে স্বাধীনভাবে চলে।

বস্তু ভিত্তিক দৃষ্টান্ত

অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং

এই ধরণের প্রোগ্রামিং তিনটি মৌলিক নীতির উপর ভিত্তি করে: ডেটা এনক্যাপসুলেশন, অবজেক্ট অ্যাবস্ট্রাকশন এবং ক্লাস হায়ারার্কি অনুযায়ী টাইপ চেকিং।

এটি লক্ষ করা গুরুত্বপূর্ণ যে একটি প্রোগ্রামিং ভাষা সাধারণত শুধুমাত্র একটি দৃষ্টান্তে সাড়া দেয় না, কিন্তু তাদের বিভিন্ন ধরণের সংমিশ্রণের ফলে হতে পারে। যাইহোক, নীচে আমরা শুধুমাত্র সংজ্ঞায়িত করার জন্য বিস্তারিতভাবে নিজেদের উৎসর্গ করব অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং কি এবং কি ভিন্ন বস্তু ভিত্তিক প্রোগ্রামিং ভাষা যে বিদ্যমান

গুণাবলী

এটি আজকের সবচেয়ে বিস্তৃত দৃষ্টান্ত, কারণ এটি যুক্তিসঙ্গত খরচে জটিলতার আরও ভাল ব্যবস্থাপনার অনুমতি দেয়। এর মাধ্যমে, অংশগুলিতে নির্মাণের সম্ভাবনা প্রস্তাবিত, অর্থাৎ, উপাদানগুলির উপর ভিত্তি করে কাজ ভাগ করা, যার ফলে দীর্ঘমেয়াদী সুবিধা সহ শক্তিশালী, বহনযোগ্য এবং পুনusব্যবহারযোগ্য অ্যাপ্লিকেশন পাওয়া যায়।

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

অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং

অন্য দৃষ্টিকোণ থেকে, আমরা উল্লেখ করতে পারি যে বস্তু ভিত্তিক প্রোগ্রামিং জ্ঞান তত্ত্বের সাথে সম্পর্কিত, যা বলে যে মানুষ পূর্বনির্ধারিত স্কিম অনুযায়ী তথ্য সংরক্ষণ করে, একজন ব্যক্তি হিসাবে তার অভিজ্ঞতার ফল। এইভাবে, এই ধরণের প্রোগ্রামিং ব্যক্তির মানসিক পরিকল্পনার মাধ্যমে তথ্য ইউনিটে সংরক্ষিত পূর্ববর্তী জ্ঞানকে ব্যবহার করে একটি হিউরিস্টিক বা তাত্ত্বিক উপায়ে জ্ঞানের প্রতিনিধিত্ব করা সম্ভব করে তোলে।

উৎস

https://youtu.be/aESIbDclIzw?t=5

অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং হল একটি কৌশল, শৈলী বা পদ্ধতি যা 1960-এর দশকে বিকশিত হয়েছিল, জটিল প্রোগ্রামগুলি পরিবর্তন বা সংশোধন করার অসম্ভবতার কারণে সৃষ্ট সংকটের ফলে। কর্মসূচির রক্ষণাবেক্ষণ করতে ইচ্ছুক বিশেষ কর্মীদের অভাবের কারণে পরিস্থিতি আরও খারাপ এবং খারাপ হচ্ছে।

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

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

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

বৈশিষ্ট্য

অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং এর একাধিক গুণ আছে, এখানে প্রধানগুলি হল:

  • বস্তু ভিত্তিক প্রোগ্রামিং এর ভিত্তি হল ক্লাস, অ্যালগরিদম নয়। এগুলো লজিক্যাল বিল্ডিং ব্লক তৈরি করে।
  • প্রতিটি বস্তু একটি শ্রেণীর উদাহরণ।
  • একটি প্রোগ্রাম একে অপরের প্রতি প্রতিক্রিয়াশীল বস্তুর একটি সেটের মাধ্যমে বার্তা প্রেরণ এবং গ্রহণের একটি মাধ্যম হিসাবে অনুভূত হয়।
  • প্রতিটি বস্তু প্রাপ্ত প্রতিটি বার্তায় সাড়া দেওয়ার সর্বোত্তম উপায় খুঁজতে হবে।
  • প্রতিটি বস্তু বিভিন্ন উপায়ে বার্তার উত্তর দিতে পারে।
  • এটি সফ্টওয়্যার পরিবর্তন করা সহজ করে তোলে কারণ উপাদানগুলি বিনিময়যোগ্য।
  • আংশিক এবং অভ্যন্তরীণ পরিবর্তনগুলি বাকি সিস্টেমের আচরণকে প্রভাবিত করে না।
  • অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং এর মৌলিক নীতিগুলি যদি অনুসরণ করা হয়, তাহলে যন্ত্রাংশগুলি পরস্পর নির্ভরশীল অবস্থায় সিস্টেম নির্মাণের খরচ কম হবে।
  • এটা সম্ভব যে অন্যদের থেকে প্রাপ্ত ক্লাসগুলি তাদের পূর্বসূরীদের জ্ঞান এবং দক্ষতার উত্তরাধিকারী হয়। উত্তরাধিকারের মাধ্যমে, ক্লাসগুলি একে অপরের সাথে সম্পর্কিত, এবং কোডটি পুনর্লিখনের প্রয়োজন ছাড়াই কাজ করার উপায় ব্যবহার করা হয়।
  • একটি শ্রেণীর পদ্ধতি বিভিন্ন কাজ করতে পারে, এমনকি যদি তারা একই নাম রাখে। অর্থাৎ, পলিমারফিজমের মাধ্যমে, প্রোগ্রামার একই পদ্ধতির বিভিন্ন রূপ প্রয়োগ করতে পারে, যার উপর ভিত্তি করে বাস্তবায়ন করা হয়। এর মানে হল যে একই পদ্ধতি বা অ্যাক্সেস মাধ্যম দ্বারা একাধিক পদ্ধতি ব্যবহার করা যেতে পারে।

পার্থক্য: কাঠামোগত প্রোগ্রামিং বনাম অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং

যেমনটি আমরা আগেই উল্লেখ করেছি, অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং স্ট্রাকচার্ড প্রোগ্রামিং এর বিবর্তনকে প্রতিনিধিত্ব করে, যার মানে এই নয় যে এটি তার চেয়ে ভালো, যেহেতু প্রত্যেকটিরই ইউটিলিটি আছে যে ধরনের সিস্টেম তৈরি হবে তার উপর নির্ভর করে। দুটির মধ্যে বিদ্যমান মৌলিক পার্থক্যগুলি নীচে প্রতিষ্ঠিত:

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

প্রথমটি একটি ডেটা স্ট্রাকচারের উপর দৃষ্টি নিবদ্ধ করে, যখন দ্বিতীয়টি বস্তুর উপর ভিত্তি করে, তার নিজস্ব অবস্থা এবং আচরণের সাথে।

স্ট্রাকচার্ড প্রোগ্রামিং এর ভিতরের তথ্য স্ট্রাকচারের মাধ্যমে প্রবাহিত হয় এবং ফাংশনে কল করে, অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং এ বার্তা প্রেরণ ও গ্রহণের মাধ্যমে তাদের মধ্যকার মিথস্ক্রিয়ার ফলাফল।

মৌলিক নীতি

অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং এর ধারণার ফলস্বরূপ, এই দৃষ্টান্তের তিনটি মৌলিক নীতি উদ্ভূত হয়। এইগুলো:

ডেটা এনক্যাপসুলেশন

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

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

ক্লায়েন্ট অবজেক্ট বাস্তবায়নের উপায় না জানার জন্য আমরা কেন কামনা করতে পারি তার প্রধান কারণ হল, সাধারণভাবে, একই ক্রিয়াকলাপের জন্য বেশ কয়েকটি বিকল্প থাকতে পারে। উপরন্তু, ভবিষ্যতে, আমরা ক্লায়েন্ট প্রভাবিত পরিষেবার বিধান না জেনে বা না দেখে এক বিকল্প থেকে অন্য বিকল্পে পরিবর্তনের সিদ্ধান্ত নিতে পারি।

বস্তুর বিমূর্ততা

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

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

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

ক্লাস শ্রেণিবিন্যাস অনুযায়ী চেক টাইপ করুন

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

রান টাইমে যখন চেক করা হয়, তখন তাকে ডায়নামিক চেক বলা হয়। বিপরীতে, কম্পাইল করার সময় করা হলে, এটিকে স্ট্যাটিক চেকিং বলা হয়।

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

এটা কিভাবে কাজ করে?

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

সংক্ষেপে, যখন একটি প্রোগ্রাম বস্তু ভিত্তিক প্রোগ্রামিং দৃষ্টান্তের অধীনে সম্পাদিত হয়, তখন তিনটি জিনিস ঘটে: প্রয়োজন অনুযায়ী বস্তু তৈরি করা হয়, প্রোগ্রাম দ্বারা তথ্য প্রক্রিয়াকরণের সমান্তরালভাবে একটি বস্তু থেকে অন্য বস্তুর বার্তা প্রবাহিত হয় এবং যখন বস্তুর আর প্রয়োজন হয় না, সিস্টেমের মেমরি মুক্ত করার জন্য সেগুলি মুছে ফেলা হয়।

মূল ধারণা

সম্পর্কে আরো একটু বোঝার জন্য অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং কি, আমাদের নিম্নলিখিত মৌলিক ধারণাগুলি উল্লেখ করতে হবে:

  • বস্তু: এটি এমন সত্তাকে বোঝায় যা বার্তা প্রাপক হতে পারে, যখন এটি তাদের সাড়া দিতে পারে এবং অন্যান্য বস্তুতে বার্তা পাঠাতে পারে। এটি এমন সত্তা যার আচরণ আছে।
  • পরিচয়: এটি এমন একটি দিক যা একটি বস্তুকে অন্য বস্তুর থেকে আলাদা করে।
  • বার্তা: এটি এমন একটি সত্তার মধ্যে ফলস্বরূপ মিথস্ক্রিয়া যা একটি পরিষেবা অনুরোধ করে এবং অন্যটি এটি সরবরাহ করে।
  • ক্লায়েন্ট অবজেক্ট: এটিই বার্তা পাঠায়।
  • রিসিভার বস্তু: এটি সেই বস্তু যা বার্তা গ্রহণ করে।
  • প্রতিনিধি: একটি বস্তু থেকে অন্য বস্তুর কাছে বার্তা পাঠানোর উল্লেখ। যখন কোনো বস্তুর বার্তার উত্তর দিতে সক্ষম হতে অন্যের সহযোগিতার প্রয়োজন হয়।
  • আচরণ: এগুলি হল একটি গ্রহণকারী বস্তু দ্বারা প্রাপ্ত বার্তাগুলির প্রতিক্রিয়া।
  • স্থিতি: প্রতিটি বস্তুর বর্তমান পরিস্থিতি উল্লেখ করা হয়েছে।
  • দায়িত্ব: এটি রাষ্ট্র এবং বস্তুর আচরণের মধ্যে মিথস্ক্রিয়া।
  • পদ্ধতি: এটি একটি প্রাপ্ত বার্তার জন্য একটি বস্তুর দেওয়া প্রতিক্রিয়া বাস্তবায়ন বোঝায়।
  • পলিমরফিজম: এটি কিছু বস্তুর একই বার্তার সাড়া দেওয়ার ক্ষমতা, কিন্তু বিভিন্ন উপায়ে।
  • ক্লাস: এগুলি এমন বস্তুর সেট যা একইভাবে আচরণ করে। তারা প্রোগ্রামার দ্বারা সংজ্ঞায়িত করা যেতে পারে। এগুলি মানসিক পরিকল্পনা যা অবজেক্টগুলিকে বিমূর্ত হতে দেয় এবং একে অপরের সাথে কীভাবে সম্পর্কযুক্ত তা নির্ধারণ করতে দেয়।
  • অ্যাট্রিবিউট: এটি তার অবস্থার অংশ সংরক্ষণের জন্য তৈরি বস্তুর একটি অভ্যন্তরীণ পরিবর্তনশীলকে বোঝায়।
  • চুক্তি: প্রতিটি উপাদান কী প্রস্তাব দেয় এবং এর সাথে সংযোগের উপায় সম্পর্কে জ্ঞাত।

অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং এর উপর ভিত্তি করে সমস্যা সমাধান

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

  • প্রোগ্রামের সংজ্ঞা: এটি একটি স্পষ্ট, বোধগম্য এবং ভালভাবে সংজ্ঞায়িত পদ্ধতিতে সমস্যার পরিকল্পিত বর্ণনা নিয়ে কাজ করে। এতে উৎপাদনের তথ্য এবং প্রক্রিয়াজাতকরণের দিকটি চিহ্নিত করা, সেইসাথে ফলাফলের বিবরণ এবং সেগুলি উপস্থাপন করা হবে।
  • অবজেক্ট-ভিত্তিক বিশ্লেষণ এবং নকশা: সমস্যা ডোমেনে বস্তুর শনাক্তকরণ এবং বর্ণনাকে বোঝায়। এর পরে, বৈশিষ্ট্য, সম্পর্ক এবং অনুসরণ করার পদ্ধতিগুলি প্রতিষ্ঠিত হয়, এটি একটি নির্দিষ্ট প্রোগ্রামিং ভাষায় প্রয়োগ করা ক্লাসগুলিকে সংজ্ঞায়িত করার জন্য।
  • প্রোগ্রামিং: মূলত, এটি প্রোগ্রামের ট্রান্সক্রিপশন বোঝায়, যার মধ্যে একটি প্রোগ্রামিং ভাষায় সঠিকভাবে কোড লেখা, পণ্যের গুণমান নিশ্চিত করতে সক্ষম ডেভেলপমেন্ট স্টাইল ব্যবহার করা, যা সমস্যার সঠিক সমাধানের কারণ হবে। এই পর্যায়ে অ্যালগরিদম নির্মাণ, ফ্লোচার্টের বিস্তার এবং চূড়ান্ত প্রোগ্রামিং, ডেস্কটপ টেস্ট, কোডিং, সংকলন এবং প্রোগ্রামের সম্পাদনের মধ্য দিয়ে যাওয়া জড়িত।
  • ডকুমেন্টেশন: এটি একটি সমস্যার সমাধানে পৌঁছানোর জন্য প্রয়োজনীয় পদক্ষেপের ক্রমের বর্ণনা অন্তর্ভুক্ত করে। এটি মন্তব্য লাইনগুলির অন্তর্ভুক্তিকে বোঝায় যা কোড লাইনগুলির অর্থ ব্যাখ্যা করে বা ব্যাখ্যা করে যা বিভ্রান্তিকর হতে পারে, বিশেষত যারা সনাক্তকারী এবং ঘোষিত ডেটা স্ট্রাকচার, নিয়ন্ত্রণ কাঠামো এবং পদ্ধতি এবং তাদের পরামিতিগুলির উল্লেখ করে। চূড়ান্ত পণ্যের সাফল্যের জন্য এই পর্যায়টি অপরিহার্য, কারণ যদি ডকুমেন্টেশন ব্যর্থ হয়, প্রোগ্রামগুলি পড়া এবং ডিবাগ করা কঠিন, এবং আরও বেশি, তাদের পরিবর্তন এবং রক্ষণাবেক্ষণ প্রায় অসম্ভব হয়ে ওঠে।

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

এখন প্রোগ্রামিং ল্যাঙ্গুয়েজ প্রায় সমাজের যে কোন ক্ষেত্রে ব্যবহার করা হয় যার মধ্যে রয়েছে ডাটাবেজ ম্যানেজমেন্ট, ইমেজ জেনারেশন এবং এমনকি কৃত্রিম বুদ্ধিমত্তা, অন্যান্য অনেক দিকের মধ্যে।

প্রধানত, নতুন সফটওয়্যার ইঞ্জিনিয়ারিং প্রযুক্তির জন্ম প্রোগ্রামিং ভাষার উত্থান ঘটিয়েছে যা আমরা নিচে দেখব।

অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ল্যাঙ্গুয়েজ

এগুলি ভাষা এবং ডেটা এবং অ্যাপলেটগুলিকে ক্লাসে সংহত করার জন্য ডিজাইন করা ভাষা। এগুলি অন্য রূপান্তরিত কোডগুলির বৈশিষ্ট্যগুলি উত্তরাধিকারী হতে পারে এবং নতুন বৈশিষ্ট্যগুলির জন্ম দেয়, যা একটি নতুন প্রোগ্রামিং পদ্ধতিতেও নেতৃত্ব দেয়।

শ্রেণীবিন্যাস

যেমন আমরা পরে দেখব, সেখানে একাধিক প্রোগ্রামিং ল্যাঙ্গুয়েজ রয়েছে যা অবজেক্ট-ভিত্তিক দৃষ্টান্তকে সাড়া দেয়। তাদের বাস্তবায়নের পদ্ধতি অনুসারে, তাদের শ্রেণিবদ্ধ করা হয়েছে:

  • যখন তারা আচরণ বাস্তবায়ন করে: এটি ক্লাস এবং প্রোটোটাইপ বা উদাহরণের উপর ভিত্তি করে তৈরি করা ভাষাগুলিকে অন্তর্ভুক্ত করে।
  • যেহেতু তারা বস্তু সৃষ্টি বাস্তবায়ন করে: তারা গতিশীল মেমরি এলাকায় বা স্ট্যাকের সংকলনের সময় কার্যকর করার সময় উপর ভিত্তি করে।
  • টাইপ চেকিং অনুযায়ী: কম্পাইল-টাইম ভেরিফিকেশন বা রান-টাইম ভেরিফিকেশন বোঝায়।

প্রধান বস্তু ভিত্তিক ভাষার মধ্যে আমাদের আছে:

কি-বস্তু-ভিত্তিক-প্রোগ্রামিং

স্বল্প কথা

এটি কেবল বস্তু ভিত্তিক প্রোগ্রামিং এর দৃষ্টান্তের অধীনে প্রোগ্রাম করা যেতে পারে। এটি একটি শ্রেণী ভিত্তিক ভাষা, যা চালানোর সময় গতিশীল মেমরি এলাকায় বস্তু ডিজাইন করে। এটি কেবল রানটাইমের সময় টাইপ চেক করে, অর্থাৎ এটি একটি গতিশীল চেকিং ভাষা।

জাভা

এটি আজ সবচেয়ে ব্যবহৃত ভাষাগুলির মধ্যে একটি, এটি সম্পূর্ণ বস্তু-ভিত্তিক, সি এবং সি ++ এর মতো সিনট্যাক্স সহ। এটি প্ল্যাটফর্ম স্বাধীন।

Smalltalk এর মত, এটি একটি ক্লাস-ভিত্তিক ভাষা, যা রানটাইমের সময় ডায়নামিক মেমরি এরিয়াতে বস্তু তৈরি করে, কিন্তু রানটাইমের সময় টাইপ চেক করে না, বরং কম্পাইল করার সময়, পার্থক্যটির সাথে এটি একটি মধ্যবর্তী অ-এক্সিকিউটেবল কোড তৈরি করে , একটি precompile থেকে আসছে। এটি এটি একটি স্ট্যাটিক চেকিং ভাষা করে তোলে।

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

অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং

জাভাস্ক্রিপ্ট

Smalltalk এবং Java এর বিপরীতে, এটি একটি ভাষা যা প্রোটোটাইপিং বা উদাহরণের উপর নির্ভর করে। এটি ব্যাখ্যা করা হয় এবং প্রকার ছাড়া, অর্থাৎ এটি রান টাইম বা কম্পাইল টাইমে টাইপ চেক করে না। চালানোর সময় গতিশীল মেমরি এলাকায় বস্তু তৈরি করে। যেহেতু এতে সংকলনের অভাব রয়েছে, এটি একটি গতিশীলভাবে যাচাই করা ভাষা হয়ে ওঠে।

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

সি ++

এই ভাষার সুবিধাগুলি শোষণ করে এবং বস্তুর জন্য সমর্থন অন্তর্ভুক্ত করে এটি theতিহ্যবাহী সি ভাষার বৃদ্ধি বৃদ্ধি করে। যদিও এটি তিনটি ভিন্ন প্রোগ্রামিং দৃষ্টান্তকে অন্তর্ভুক্ত করে, যেমন: স্ট্রাকচার্ড প্রোগ্রামিং, জেনেরিক প্রোগ্রামিং এবং অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং, তিনিই ছিলেন স্ট্রাকচার্ড প্যারাডাইম থেকে অবজেক্ট-ওরিয়েন্টেড প্যারাডাইমে রূপান্তর।

এটি একটি বহুমুখী ভাষা, উইন্ডোজ এবং জিএনইউ লিনাক্স উভয় ক্ষেত্রেই অ্যাপ্লিকেশন প্রোগ্রামারদের মধ্যে খুব ঘন ঘন ব্যবহৃত হয়। রান টাইমে ডায়নামিক মেমোরিতে বস্তু তৈরি করে। এটি মূলত কর্মক্ষমতা, বহনযোগ্যতা এবং বিমূর্ততার উপর দৃষ্টি নিবদ্ধ করে। এর প্রধান অসুবিধা হল কম্পাইল করার সময়, একটি এক্সিকিউটেবল ফাইল তৈরি করা হয় যার কোড শুধুমাত্র সেই প্ল্যাটফর্মের জন্য বৈধ যেখানে সংকলন করা হয়েছিল। অন্যদিকে, একটি এক্সিকিউটেবল ভাষা হচ্ছে, এটি প্ল্যাটফর্ম স্বাধীন নয়।

C#

এটি একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ যা রানটাইম এ চলে এবং এটি .NET প্ল্যাটফর্মের মধ্যে অন্তর্ভুক্ত, যা আপনাকে আপনার লাইব্রেরিগুলি শেয়ার এবং চিনতে দেয়। এটি সম্পূর্ণ অবজেক্ট-ওরিয়েন্টেড, সব ধরনের অ্যাপ্লিকেশন তৈরির অনুমতি দেয়।

এটি C এবং C ++ ভাষার একটি বিবর্তন গঠন করে, পরের জটিলতা দূর করে, যেহেতু এটি ব্যবহার করা সহজ এবং এর অপারেশন চলাকালীন ত্রুটির মার্জিন কমিয়ে দেয়, প্রাক -সংকলন গ্রহণের কারণে।

অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং

পাইথন

এটি একটি মাল্টিপ্লাটফর্ম ভাষা, প্রধানত বস্তু-ভিত্তিক, কিন্তু অন্যান্য দৃষ্টান্তকে অন্তর্ভুক্ত করে যেমন অপরিহার্য প্রোগ্রামিং, কার্যকরী প্রোগ্রামিং এবং দিক-ভিত্তিক প্রোগ্রামিং।

এর পরিষ্কার বাক্য গঠন, প্রাকৃতিক ভাষার খুব কাছাকাছি, এর কোড পড়ার পক্ষে। প্রোগ্রামিং জগতে শুরু করার জন্য এটি অত্যন্ত সুপারিশ করা হয়।

এটি একটি মধ্যবর্তী প্রোগ্রামের মাধ্যমে সম্পাদিত হয়, অর্থাৎ, একজন দোভাষীর মাধ্যমে। কারণ এটি একটি অর্ধ-ব্যাখ্যািত ভাষা, এটি নমনীয় এবং বহনযোগ্য। এটি গতিশীলভাবে টাইপ করা হয়েছে, যার অর্থ রানটাইমের সময় ডেটার ধরন নির্ধারিত হয়।

প্যাসকেল

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

একটি কাঠামোগত ভাষা হওয়া সত্ত্বেও, এটি তার টার্বো পাস্কাল সংস্করণের মাধ্যমে বস্তু ভিত্তিক প্রোগ্রামিংয়ের অনুমতি দেয়। এটির একটি সমন্বিত পরিবেশ রয়েছে, যা থেকে প্রোগ্রামগুলি লেখা এবং তাদের পরীক্ষা করা সম্ভব। পরিশেষে, পাস্কাল একটি সাধারণ উদ্দেশ্যমূলক ভাষা।

যদি আপনার আগ্রহের বিষয় প্রোগ্রামিং এর সাথে সম্পর্কিত হয়, আমি আপনাকে পড়ার জন্য আমন্ত্রণ জানাচ্ছি প্রোগ্রামিং এ অ্যালগরিদম কি?