ওওপি-তে 'বিমূর্তি' সংজ্ঞা সম্পর্কে বিভ্রান্ত


16

আমি ওওপিতে 'বিমূর্ত' সংজ্ঞাটি বোঝার চেষ্টা করছি।

আমি কয়েকটি মূল সংজ্ঞা জুড়ে এসেছি। তারা সব বৈধ? তাদের মধ্যে একটি ভুল? আমি বিভ্রান্ত (আমি নিজের শব্দ দিয়ে সংজ্ঞাটি আবার লিখেছি)।

সংজ্ঞা 1:

অ্যাবস্ট্রাকশন হ'ল বাস্তব জগতের কিছু বস্তু গ্রহণ এবং এটিকে প্রোগ্রামিংয়ের পদগুলিতে রূপান্তর করার ধারণা। যেমন একটি Humanক্লাস তৈরি করা এবং এটি দেওয়াint health , int age, String name, ইত্যাদি বৈশিষ্ট্য, এবং eat()ইত্যাদি পদ্ধতি।

সংজ্ঞা 2:

আরও সাধারণ সংজ্ঞা। অ্যাবস্ট্রাকশন এমন একটি ধারণা যা কোনও সফ্টওয়্যার সিস্টেমে যেখানেই ঘটে থাকে যেখানে 'জিনিসগুলিকে আরও সাধারণ / সরল / বিমূর্ত করা' জড়িত। কয়েকটি উদাহরণ:

  • উত্তরাধিকারের শ্রেণিবিন্যাস, যেখানে উচ্চতর শ্রেণিগুলি সহজ বা আরও সাধারণ এবং আরও সাধারণ এবং বিমূর্ত বাস্তবায়ন সংজ্ঞায়িত করে। যদিও শ্রেণিবদ্ধের নিম্ন শ্রেণিগুলি আরও কংক্রিট এবং আরও বিস্তারিত বাস্তবায়ন সংজ্ঞায়িত করে।

  • অন্য শ্রেণি থেকে কোনও শ্রেণীর প্রয়োগের বিবরণ গোপন করতে এনক্যাপসুলেশন ব্যবহার করে, ক্লাসটি বাইরের সফ্টওয়্যার বিশ্বে আরও 'বিমূর্ত' (সরল) করে তোলে।

সংজ্ঞা 3

আর একটি সাধারণ সংজ্ঞা: বিমূর্তি হ'ল বিষয়গুলির বিবরণ এবং কংক্রিট বাস্তবায়ন থেকে বিষয়গুলির (যেমন শ্রেণিগুলি), উপলব্ধ ক্রিয়াকলাপগুলি (যেমন পদ্ধতি) ইত্যাদির দিকে ফোকাস সরিয়ে নিয়ে যাওয়া, এইভাবে প্রোগ্রামিংটিকে আরও সাধারণ, আরও সাধারণ, এবং আরও বিমূর্ত। (এটি সফ্টওয়্যার সিস্টেমের যে কোনও জায়গায় এবং যে কোনও প্রসঙ্গে স্থান নিতে পারে)। এটি উদাহরণস্বরূপ এনক্যাপসুলেটিং করার সময় ঘটে থাকে, কারণ এনক্যাপসুলেশন বলতে বাস্তবায়নের বিশদটি গোপন করে এবং কেবল জিনিসগুলির ধরণ এবং তাদের আরও সাধারণ এবং বিমূর্ত সংজ্ঞা প্রদর্শন করে। Anotehr উদাহরণ Listজাভাতে একটি অবজেক্ট ব্যবহার করা হবে । এই অবজেক্টটি আসলে একটি ArrayListবা ক এর বাস্তবায়ন বিশদ LinkedListব্যবহার করে তবে আরও সাধারণ নাম ব্যবহার করে এই তথ্য বিমূর্ত করা হয়List

এই সংজ্ঞাগুলির কোনটিই সঠিক? (আমি সর্বাধিক প্রচলিত এবং স্বীকৃত সংজ্ঞাটি উল্লেখ করছি )।


বিমূর্তি আরও "(কুকুর => পুডল) সঙ্কুচিত করার জন্য কোনও" জিনিস "কে জিনিস (প্রাণী => কুকুর) এর নির্দিষ্ট ধরণের টিওয়াইপি হিসাবে সংজ্ঞায়িত করছে।
ক্রিস্টিন

উত্তর:


22

অবজেকশন অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং (ওওপি) এর 3 স্তম্ভগুলির মধ্যে একটি of এর আক্ষরিক অর্থ একটি নির্দিষ্ট দৃষ্টিকোণ থেকে কোনও সিস্টেম বা প্রসঙ্গে কোনও সত্তা বোঝা। আমরা অপ্রয়োজনীয় বিশদ গ্রহণ করি এবং কেবল সেই বিষয়গুলিতে ফোকাস করি যা বিবেচনাধীন সেই প্রসঙ্গ বা সিস্টেমের জন্য প্রয়োজনীয়।

এখানে কিছু ভাল ব্যাখ্যা দেওয়া হয়েছে:

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

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

1 ম Defs খুব পরিষ্কার নয়। ডিএফ 2 ভাল তবে এটি নবাগতকে বিভ্রান্ত করার প্রবণতা রয়েছে কারণ এটি অ্যাঙ্কস্ট্রাকশন এবং উত্তরাধিকারের সাথে অ্যাবস্ট্রাকশনকে লিঙ্ক করার চেষ্টা করে। Def 3 3 সংজ্ঞাগুলির মধ্যে একটি সেরা কারণ এটি স্পষ্টভাবে বিমূর্ততা কী তা সংজ্ঞায়িত করে।


3
সুতরাং আপনি বলবেন যে এটি কোনও নির্দিষ্টকরণের পরিবর্তে সাধারণীকরণের মতো?
রবার্ট রোচা

1
নিখুঁতভাবে আমরা বিমূর্তকরণের জন্য জেনেরিক গুণাবলী এবং অবজেক্টগুলির আচরণের সন্ধান করি।
ম্যাকসুড

[প্রাণী => কুকুর] একটি বিমূর্ততা। একটি "প্রাণী" একটি "কুকুর" তৈরি করতে পারে এমন সম্ভাব্য অংশগুলি আপনি নির্ধারণ করেন। (লেজ, পা, পশম, ইত্যাদি)। তারপরে, আপনি একটি পোডল, পিট বুল, ইত্যাদি সংজ্ঞায়িত করতে "কুকুর" শ্রেণিটি ব্যবহার করতে পারেন সুতরাং, আপনি একটি "প্রাণীর" পরিবর্তে "কুকুর" শ্রেণির উপর ভিত্তি করে কুকুরের জাত ঘোষণা করছেন।
ক্রিস্টিন

3

সংজ্ঞা 1 অবশ্যই কোনও বিমূর্ততা নয়। এটি আরও নিবিড়ভাবে বর্ণনা করছে মডেলিংয়ের

সংজ্ঞা 2 এবং 3 একই জিনিস বর্ণনা করে। এবং উভয়ই একটি বিমূর্তকরণের বেশ ভাল বর্ণনা।


আমি যা ভেবেছিলাম! abstract class Shapeহাঃ হাঃ হাঃ!
রবার্ট রোচা

2

এই সংজ্ঞা প্রতিটি ভাল।

বিমূর্তি হ'ল যেখানে আপনি কেবল সেই বিবরণগুলিতে মনোনিবেশ করেন যা আপনার উদ্দেশ্যে গুরুত্বপূর্ণ।

প্রথম ক্ষেত্রে, আপনি (বর্তমানে) আপনার কোডটিতে প্রকৃত লোকদের অন্তর্ভুক্ত করতে পারবেন না; আপনি কোনও ব্যক্তির বিশেষ বিবরণে মনোনিবেশ করেন যা আপনার উদ্দেশ্যটি পরিবেশন করে। অন্য প্রোগ্রামে আপনাকে বিভিন্ন বিবরণে ফোকাস করতে হতে পারে। এগুলি কোনও ব্যক্তির বিভিন্ন বিমূর্ততা হবে এবং প্রতিটি তাদের প্রসঙ্গে সমানভাবে বৈধ হতে পারে

দ্বিতীয় এবং তৃতীয় সংজ্ঞাগুলি এই ধারণাটি চালিয়ে যায়, এটি সফ্টওয়্যার সত্তাগুলিতে প্রয়োগ করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.