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