বিমূর্ততা কী? [বন্ধ]


38

প্রোগ্রামাররা যেমন ব্যবহার করেন তেমনি কোনও প্রোগ্রামিং বিমূর্ততা কী এর জন্য সংজ্ঞায় একমত হয়ে থাকে ? [দ্রষ্টব্য, প্রোগ্রামিং বিমূর্ততা "বিমূর্ততা" শব্দের অভিধান সংজ্ঞা দিয়ে বিভ্রান্ত হওয়া উচিত নয়] এখানে কি কোনও দ্ব্যর্থহীন, না এমনকি গাণিতিক সংজ্ঞাও রয়েছে? বিমূর্ততার কিছু স্পষ্ট উদাহরণ কি?


..আর পোস্ট করার সময় আমি প্রমাণ করতে বাধ্য হয়েছি যে আমি কোনও রোবট নই যে আমি সত্যিই খুব বেশি
চাইছি

8
"গাণিতিক" বলতে কী বোঝ? আমি আসলে গাণিতিক ধারণা হিসাবে বিমূর্ততা সম্পর্কে ভাবব না।
ফিশটোস্টার

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

1
@ এমএলভিএলজেআর, সমস্ত প্রোগ্রামিং নিষ্কাশনকে coverাকতে আপনি কি গণিতের উদাহরণ, বা গণিত চান? আমি মনে করি না যে আধুনিকতা আছে।
সি রস

8
পেরহপাস cstheory.stackexchange.com এই প্রশ্নের সঠিক জায়গা
কনরাড ফ্রিক্স

উত্তর:


46

"আপনি কোনও প্রোগ্রামিং বিমূর্তটি কম-বেশি গাণিতিকভাবে কী তা সংজ্ঞা দিতে পারবেন?" কোন." বিমূর্ততা কোনও গাণিতিক ধারণা নয়। এটি কাউকে গাণিতিকভাবে একটি লেবুর রঙ ব্যাখ্যা করতে বলার মতো হবে।

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

বিমূর্তিটি স্তরযুক্ত এবং আপনার পছন্দ মতো সূক্ষ্ম বা মোটা দানাযুক্ত হতে পারে (একটি এমএক্স 518 একটি মাউস, যা একটি নির্দেশক বস্তু, যা একটি কম্পিউটার পেরিফেরিয়াল, যা বিদ্যুত দ্বারা চালিত একটি বস্তু), আপনি যতদূর যেতে পারেন , এবং কার্যত যেদিকে আপনি চান (আমার মাউসটির একটি তার রয়েছে, যার অর্থ আমি এটিকে একটি তারের সাথে একটি বস্তু হিসাবে শ্রেণিবদ্ধ করতে পারি It's এটি নীচের অংশেও সমতল so একটি ঝুঁকির বিমানে সোজা করে রাখা)।

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


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

4
@ এনলাওয়াকার: আপনি সাধারণীকরণের সাথে বিমূর্তকরণ মিশ্রণ করছেন। তারা একই জিনিস না। আপনি যা বর্ণনা করছেন তা হ'ল পরেরটি ('নির্দিষ্ট ধারণা থেকে আরও সাধারণের দিকে চলে যাওয়া ')। বিমূর্তিটি কংক্রিটের জিনিসগুলি থেকে বিমূর্ত জিনিসগুলিতে সরে যাচ্ছে, যেমন 7 নীল এবং red টি লাল মার্বেল রয়েছে এবং বলেছে 'একই বর্ণের মার্বেলগুলির একই সংখ্যার সাথে আমার দুটি সেট রয়েছে': এখানে আমি কংক্রিটের জিনিসগুলি (মার্বেলগুলি) থেকে বিমূর্ত জিনিসগুলিতে চলেছি (ক্লাস এবং সমমানের সেট)। বিটিডাব্লু, একটি প্রাকৃতিক সংখ্যা এন হ'ল কার্ডিনালিটি এন এর সমতুল্য সেটগুলির শ্রেণি, সেই সেটগুলির মধ্যে এক থেকে এক ম্যাপিং দ্বারা নির্ধারিত অ-বিজ্ঞপ্তি।
পিলমুনচার

33
গাণিতিকভাবে একটি লেবুর রঙ আনুমানিক 570 এনএম এর তরঙ্গ দৈর্ঘ্যের সাথে হালকা।
এরিক

1
@ এরিক আমি তাই লিখতে যাচ্ছিলাম। বাঃ!
গ্যারি রোয়ে

1
@ এরিক এটি পদার্থবিজ্ঞান, গণিত নয় :) গণিত "আলো" এর মতো ধারণাগুলি সম্পর্কে কিছুই জানেন না। আলো অনুভূত হয়; গণিত হয় না।
আন্দ্রেস এফ।

25

আমি বেশিরভাগ উত্তরের সাথে স্পষ্টভাবে একমত নই।

এটি আমার উত্তর:

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

এটি কম্পিউটার প্রোগ্রামগুলির বিমূর্ত ব্যাখ্যার তত্ত্ব থেকে এসেছে, যা সাধারণত আজ পর্যন্ত স্থির বিশ্লেষণ পদ্ধতি is


8
ঠিক আছে, আপনি অধ্যাপকত্বের জন্য একটি সোনার তারকা পেয়েছেন :)
মাইক ডুনলাভে

@ মাইক: ইয়ে? :-)
পল নাথান

আহ, এবং এর কোন উদাহরণ থাকতে পারে?
mlvljr

2
@ এমএলভিএলজেআর: di.ens.fr/~cousot/AI astree.ens.fr একটি স্কেচ ডেটা সরবরাহ করে।
পল নাথান

1
আমির: এটি স্থির বিশ্লেষণ জগতের বিমূর্তকরণের প্রযুক্তিগত সংজ্ঞা।
পল নাথান

13

বিমূর্তি আরও বেশি ফোকাস Whatএবং কম How। বা আপনি বলতে পারেন, কেবল আপনার প্রয়োজনীয় জিনিসগুলি জানেন এবং অন্যান্য সমস্ত পরিষেবার জন্য সরবরাহকারীকে বিশ্বাস করুন। এটি কখনও কখনও পরিষেবা সরবরাহকারীর পরিচয়ও গোপন করে।

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

আরও কয়েকটি উদাহরণ:

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

  • যে কোনও এপিআই অন্যান্য প্রোগ্রামারদের পরিষেবা সরবরাহ করে তার প্রয়োগের সমস্ত বিবরণ গোপন করে।

  • ওওপির একটি শ্রেণি তার ব্যক্তিগত সদস্যদের এবং জনসাধারণকে কল করার জন্য পরিষেবা সরবরাহকারী পাবলিক সদস্যদের বাস্তবায়ন গোপন করে।

  • জাভা বা সি ++ তে একটি Interfaceবা এক ধরণের একটি অবজেক্ট ব্যবহার করার সময় abstract class, বাস্তব বাস্তবায়নটি গোপন। এবং কেবল লুকানো নয়, এর মধ্যে ঘোষিত পদ্ধতিগুলির Interfaceবাস্তবায়ন বিভিন্ন বাস্তবায়িত / উত্তরাধিকার সূত্রে প্রাপ্ত শ্রেণিতেও আলাদা হতে পারে। তবে আপনি যেমন একই পরিষেবা পাচ্ছেন, ঠিক তেমন উদ্বেগ করবেন না Howযে এটি কার্যকর করা হয়েছে এবং ঠিক Who/ Whatপরিষেবা সরবরাহ করছে।

  • পরিচয় গোপন : "আমি জানি স্যাম কম্পিউটার প্রোগ্রাম লিখতে পারে" এই বাক্যটির জন্য। বিমূর্ততাটি হতে পারে- "স্যাম একজন প্রোগ্রামার Program প্রোগ্রামাররা কম্পিউটার প্রোগ্রাম লিখতে জানেন know" দ্বিতীয় বিবৃতিতে, ব্যক্তিটি গুরুত্বপূর্ণ নয়। তবে তার প্রোগ্রামিং করার দক্ষতা গুরুত্বপূর্ণ।


সুতরাং কেন একে কেবল "কীসের সঠিক স্পেসিফিকেশন" বলবেন না, বিটিডাব্লু?
mlvljr


@ এমএলভিএলজিআর এর কিছুটা Howবুঝতে সর্বদা সহায়ক What। সুতরাং এটি বিমূর্ততার সাথে মিশ্রিত করা যেতে পারে।
গুলশান

7

একটি প্রোগ্রামিং বিমূর্ততা একটি সমস্যার সরল মডেল

উদাহরণস্বরূপ, একটি টিসিপি / আইপি সংযোগ ডেটা প্রেরণের ক্ষেত্রে একটি বিমূর্ততা। আপনি কেবল একটি আইপি ঠিকানা এবং একটি পোর্ট নম্বর অন্তর্ভুক্ত করেন এবং এপিআইতে প্রেরণ করেন। আপনি তার, সংকেত, বার্তা ফর্ম্যাট এবং ব্যর্থতার সমস্ত বিবরণ নিয়ে উদ্বিগ্ন নন।


আহা! এখানে সরলীকৃত মডেল কী ? ফাঁস ধাঁধা মনে আছে , বিটিডব্লিউ? :)
mlvljr

7

একটি বিমূর্ততা কেবল একটি উপপাদ্যের প্রোগ্রামিং সংস্করণ।

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

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

উদাহরণস্বরূপ: আসুন আমরা বলি যে আমাদের আদিম ক্রিয়াকলাপ হিসাবে সংখ্যার সমতা এবং সমতা পরীক্ষা করা আছে, এবং আদিম ডেটা ধরণের হিসাবে পূর্ণসংখ্যা এবং বুলিয়ান। এই আমাদের axioms হয়। সুতরাং আমরা বলতে পারি যে 1 + 3 == 2 + 2এটি একটি উপপাদ্য, তারপরে সংযোজন এবং পূর্ণসংখ্যার নিয়ম এবং সাম্যতা ব্যবহার করে দেখুন এটি সত্যিকারের বক্তব্য কিনা।

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

ref x (*) y := loop y times {x +}) 0

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

আমি আমার টাইপ সিস্টেমটিও পরীক্ষা করতে পারি। (*) এর এক ধরণের int -> int -> int রয়েছে। এটি 2 ints লাগে এবং একটি int আউটপুট। সংযোজনের একটি প্রকার -> ইন -> ইন্ট থাকে তাই 0 + (বিশ্রাম) যতক্ষণ ধরে থাকে (বিশ্রাম) যতক্ষণ না কোন int এর ফলাফল হয়। আমার লুপটি সমস্ত ধরণের কাজ করতে পারে, তবে আমি বলছি এটির মতো ক্রাইড ফাংশনগুলির একটি শৃঙ্খলা আউটপুট করে যা (x + (x + (x + + 0))) ফলাফল। এই সংযোজন শৃঙ্খলার ফর্মটি কেবলমাত্র (int -> (int -> (int ... -> int))) তাই আমি জানি আমার চূড়ান্ত আউটপুটটি কোনও int হবে। সুতরাং আমার টাইপ সিস্টেমটি আমার অন্যান্য প্রমাণের ফলাফলগুলি ধরে রেখেছে!

বহু বছর ধরে অনেক প্রোগ্রামার, এবং কোডের অনেকগুলি লাইন এবং এই ধরণের ধারণাটি যৌগিকভাবে তৈরি করুন এবং আপনার কাছে আধুনিক প্রোগ্রামিং ভাষা রয়েছে: "প্রমাণিত" কোড বিমূর্ততার একটি আধ্যাত্মিক সেট এবং আধ্যাত্মিক বিশাল গ্রন্থাগার set


4

উইকিপিডিয়া উত্তর যথেষ্ট ভাল হবে? http://en.wikipedia.org/wiki/Abstraction_%28programming%29

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


এবং তারপরে বিমূর্ত জিনিসটির উদাহরণ কী হবে?
mlvljr

3
@ এমএলভিএলজেআর: আপনি যদি উইকিপিডিয়া নিবন্ধটি পড়েন তবে কয়েকটি দেখতে পাবেন।
জন ফিশার

দুঃখের বিষয়, আমি নিশ্চিত যে তারা খুব বেশি বিমূর্ত হবে ..
mlvljr

4

ভাল, গাণিতিকভাবে, "পূর্ণসংখ্যা" একটি বিমূর্ততা। এবং যখন আপনি সমস্ত পূর্ণসংখ্যার জন্য x + y = y + x এর মতো আনুষ্ঠানিক প্রমাণ করেন, আপনি 3 বা 4 এর মতো নির্দিষ্ট সংখ্যার চেয়ে বিমূর্ত "পূর্ণসংখ্যার" সাথে কাজ করছেন যখন আপনি যখন ইন্টারফেস করেন তখন সফ্টওয়্যার বিকাশে একই জিনিস ঘটে রেজিস্টার এবং মেমরি অবস্থানের উপরে স্তরে মেশিন। বেশিরভাগ ক্ষেত্রে আপনি আরও বিমূর্ত স্তরে আরও শক্তিশালী চিন্তাভাবনা চিন্তা করতে পারেন।


ব্যবহার করবে না এবং IInt add(IInt a, IInt b);সাবরুটিন একটি প্রোগ্রাম যেখানে আপনি জানতে পূর্বেই যে aএবং bথাকবে বলে Int128: IIntএকটি বেশী বা কম ভাল উদাহরণ? --এই আপনার কোড টুকরোটি যা করা উচিত তা করে, জেনে (প্রমাণ করতে সক্ষম হওয়া) এটি আপনার প্রয়োজনীয় কাজটি করবে এবং একই সাথে (এবং অন্যদিকে) আপনি এটি ঠিক আপনার কাজগুলি করতে সক্ষম হবেন এটি কখনও জেনেও দরকার নেই (সেই জিনিসটি অন্য প্রসঙ্গেও ব্যবহার করার দক্ষতার সাথে)?
mlvljr

1
দুঃখিত, তবে আমি আপনার প্রশ্নটি বুঝতে পারি না।
কেট গ্রেগরি

ঠিক আছে, ধরুন, আপনি এমন একটি প্রোগ্রাম লিখছেন যা 2 থেকে 3 যোগ করতে হবে আপনি একটি add(int, int)সাব্রোটিন / ফাংশন কল করে এটি করেন। কেবলমাত্র এক্ষেত্রে এটি যথেষ্ট হবে return 2 + 3;। এবং কেন আপনি আরও বেশি "সার্বজনীন" রুটিন ব্যবহার করবেন ( return a + b;অর্থাত্ সরবরাহিত কোনও প্রকৃত a এবং bপরামিতিগুলির সাথে কাজ করে এবং সুতরাং তাদের মানগুলি থেকে সত্যই বিমূর্ত ) - এটি আমার উপরে (অলঙ্কৃত) প্রশ্ন ছিল। আশা করি এটি এখন আরও স্পষ্ট হয়ে উঠবে।
mlvljr

আমার প্রথম মন্তব্যটি বেশ "স্ব-
নিরস্ত

4

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

আমাকে একটি উঁকি দেওয়ার অনুমতি দিন ...

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


"বিস্মৃত কিছু হিসাবে স্পষ্টভাবে বোঝা (বা আরও বেশি, শুকনো (গাণিতিক) পদে বর্ণিত") হিসাবে বিমূর্তির চিন্তাভাবনা (এটি প্রথম এবং কমপক্ষে) এটি কী এবং (দ্বিতীয়ত) এর কৌশলগুলি বিকশিত করতে বুঝতে সহায়তা করে না আবেদন এবং (অস্বাভাবিক!) [কিভাবে এবং কোন পথে দেওয়া কোড বিমূর্ত হয়] মূল্যায়ন।
mlvljr

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

@ জেসন বেকার আমাদের বিমূর্ত কৌশলগুলি কার্যকরভাবে কার্যকরভাবে ব্যবহারের জন্য যথেষ্ট কংক্রিট হতে দিন ...
mlvljr

1
@ জেসন: "যদি এক জায়গায় পরিবর্তন আপনাকে অন্য কোথাও একাধিক পরিবর্তন করতে হয় তবে আপনার বিমূর্ততা খারাপ ractions" আমি সেখানে আপনার সাথে আছি আমার মনে হয় খারাপেরা ঘিরে আছে।
মাইক ডুনলাভে

1
দেখে মনে হচ্ছে আপনি এমন জায়গায় কাজ করেছেন যেখানে দেবগণের দর্শন ছিল এবং দলকে দৃষ্টি নিবদ্ধ রেখে কোনও শক্তিশালী বস নেই। আমি যখন নিজেকে এমন পরিবেশে খুঁজে পাই তখন আমি অন্য কোনও কাজের সন্ধান করতে শুরু করি (প্রকল্পের বাজেট সর্বদা শেষ হয়, বা ছোট পর্যায়ে সংস্থাগুলি => দেউলিয়ার)। আমি সম্প্রতি একটি টুইট দেখেছি: 'স্প্যাগেটি কোড' বনাম 'লাসাগন কোড', যখন পরে অনেকগুলি স্তর থাকে।
yzorg

4

আমি মনে করি আপনি ফাঁসযুক্ত বিমূর্ততা সম্পর্কে আমার একটি ব্লগ পোস্ট খুঁজে পেতে পারেন । এখানে প্রাসঙ্গিক পটভূমি:

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

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

অ্যাবস্ট্রাকশন এনক্যাপসুলেশন এবং মডুলারিটির সাথে সম্পর্কিত এবং এই ধারণাগুলি প্রায়শই ভুল বোঝা যায়।

ইন Listউদাহরণস্বরূপ, এনক্যাপস্যুলেশন একটি লিঙ্ক-তালিকা বাস্তবায়ন বিবরণ লুকিয়ে রাখা ব্যবহার করা যেতে পারে; উদাহরণস্বরূপ, কোনও অবজেক্ট-ভিত্তিক ভাষায় আপনি nextএবং previousপয়েন্টারগুলিকে ব্যক্তিগত করতে পারেন , যেখানে কেবলমাত্র তালিকা প্রয়োগের ক্ষেত্রেই এই ক্ষেত্রগুলিতে অ্যাক্সেসের অনুমতি রয়েছে।

বিমূর্তকরণের জন্য এনক্যাপসুলেশন যথেষ্ট নয়, কারণ এটি প্রয়োজনীয়ভাবে বোঝায় না যে আপনার কাছে কনস্ট্রাক্টসের নতুন বা ভিন্ন ধারণা রয়েছে। সমস্ত Listশ্রেণি যদি আপনাকে ' getNext' / ' setNext' শৈলীর অ্যাক্সেসর পদ্ধতি দেয় তবে তা বাস্তবায়ন বিশদ থেকে আপনার কাছ থেকে সজ্জিত হবে (উদাহরণস্বরূপ, আপনি ক্ষেত্রটির নাম ' prev' বা ' previous' দিয়েছেন? এর স্থির প্রকারটি কী ছিল?), কিন্তু এটি বিমূর্ততা খুব কম ডিগ্রী হবে।

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

তথ্য আড়ালকরণকে এনক্যাপসুলেশন দ্বারা সহায়তা করা হয় (যাতে আপনার কোডটি অস্থির প্রয়োগের বিশদগুলির উপর নির্ভর করে না), তবে মড্যুলারটির জন্য এনক্যাপসুলেশন প্রয়োজনীয় নয়। উদাহরণস্বরূপ, যদি আপনি একটি বাস্তবায়ন করতে পারে Listসি গঠন, 'প্রকাশক next' এবং ' prevবিশ্বের কাছে' পয়েন্টার, কিন্তু একটি ইন্টারফেস প্রদান ধারণকারী initList(), addToList()এবংremoveFromList()ফাংশন। ইন্টারফেসের নিয়ম অনুসরণ করা হয় তবে আপনি গ্যারান্টি দিতে পারেন যে নির্দিষ্ট বৈশিষ্ট্য সর্বদা রাখে যেমন ডেটা-কাঠামো সর্বদা বৈধ অবস্থায় থাকে তা নিশ্চিত করা। [উদাহরণস্বরূপ, ভারসাম্যতা সম্পর্কে পার্নাসের ক্লাসিক কাগজটি সমাবেশে একটি উদাহরণ সহ লেখা হয়েছিল। ইন্টারফেসটি একটি চুক্তি এবং নকশা সম্পর্কে যোগাযোগের একধরণের রূপ, এটি যান্ত্রিকভাবে পরীক্ষা করা প্রয়োজন হয় না, যদিও এটিই আমরা আজ নির্ভর করি।]

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

  • যদি কোনও এন ^ 3 অ্যালগরিদম "চমত্কারভাবে এনক্যাপসুলেটেড" হয় তবে এটি উন্নত এন লগ এন অ্যালগরিদমের চেয়ে আরও খারাপ সম্পাদন করবে।

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

  • যদি তৈরি বিমূর্তিটি অনেকগুলি অযৌক্তিক বিবরণ প্রকাশ করে তবে এটি নিজস্ব ক্রিয়াকলাপ সহ একটি নতুন নির্মাণ তৈরি করতে ব্যর্থ হবে: এটি কেবল একই জিনিসটির অন্য নাম হবে।


হ্যাঁ, আমি আসলে যা চেয়েছিলাম তা সম্পর্কে এটি মনে হয় (কিছু মডেলুলার == বিমূর্ত == ভাল == আপনি-কখনই-প্রাক্কলন-এটি-ন্যায়-সংগ্রাম "দেখুন" তেমন কিছু সাধারণ-সেন্স / উদাহরণ -প্রসূত "ভেন্টস") , ধন্যবাদ (এখনও পড়া)
mlvljr

এবং এখানে আমার আগত উত্তরের একটি উত্তেজক উদ্দেশ্য রয়েছে (আমার নিজের প্রশ্নের কাছে) "মন দুর্বল হয়ে গেলে
বিমূর্তি

2

ঠিক আছে, আমি মনে করি আপনি যা জিজ্ঞাসা করছেন আমি তা বুঝতে পেরেছি: "'অ্যাবস্ট্রাকশন' এর গাণিতিকভাবে কঠোর সংজ্ঞাটি কী।"

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


2

বিমূর্তিটি হ'ল আপনি যখন প্রাসঙ্গিক বলে মনে করেন তাদের পক্ষে অপ্রাসঙ্গিক বলে মনে করা বিবরণগুলি এড়িয়ে যান।

বিমূর্ততা encapsulation, তথ্য গোপন এবং সাধারণীকরণ অন্তর্ভুক্ত। এটি উপমা, রূপক বা হিউরিস্টিকসকে অন্তর্ভুক্ত করে না।

বিমূর্ততা ধারণা জন্য কোনো গাণিতিক লৌকিকতা নিজেই হবে হতে যেমন অগত্যা গাণিতিক বৈশিষ্ট্য একটি সেট মধ্যে আনমনা করা অন্তর্নিহিত জিনিস করতে হবে, একটি বিমূর্ততা! মুরফিজমের বিভাগ-তত্ত্ব ধারণাটি আপনি যা খুঁজছেন সম্ভবত তার কাছাকাছি।

বিমূর্ততা এটা এমন কিছু বিষয় যা আপনি হন, কিছু ঘোষণা নয় কি


+1, "আমি বিমূর্ততা করি!" একটি টি-শার্টের জন্য দুর্দান্ত হবে;) রূপচর্চায় লিঙ্কের জন্য ধন্যবাদ (গুলি) (যদিও এটি পলিটি সরাসরি উল্লেখ করে না - উল্লিখিত ডজন ডজন লোকের মধ্যে একটি;))।
mlvljr

2

অন্য ব্যক্তির কাছে এটি ব্যাখ্যা করার উপায় হিসাবে আমি ফলাফলগুলি থেকে ফিরে অন্য পথে যেতে চাই:

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

আপনি যদি এতে প্রসারিত করতে চান তবে আপনি যুক্ত করতে পারেন:

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

এর বাইরে, আমি মনে করি আপনাকে উদাহরণগুলি শুরু করতে হবে ...


1

আপনি বব মার্টিনের কিছু মেট্রিক পরীক্ষা করতে চাইতে পারেন

http://en.wikipedia.org/wiki/Software_package_metrics

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


হ্যাঁ, সেই কাগজটি মনে রাখবেন। কাকা বব ভিড়কে উত্সাহিত করতে এবং ওওর যান্ত্রিকগুলিতে লোকদের আগ্রহী করতে উজ্জ্বল।
mlvljr

আশ্চর্যজনকভাবে, আমি
upvote

1

মেরিয়াম-ওয়েবস্টার অ্যাবস্ট্রাক্টকে বিশেষণ সত্তা হিসাবে সংজ্ঞায়িত করেছেন: কোনও নির্দিষ্ট উদাহরণ থেকে বিচ্ছিন্ন।

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

যদিও প্রায়শই, বিমূর্ততাগুলি গাণিতিক গঠনের ক্ষেত্রে সংজ্ঞায়িত হয়। এটি সম্ভবত কারণ তারা প্রায়শই বিজ্ঞান এবং প্রকৌশল ব্যবহৃত হয়।

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

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

অন্যরা যেমন বলেছে, এটি একটি সরলীকৃত মডেল। জটিল সিস্টেমগুলি আরও ভালভাবে বোঝার জন্য এটি একটি সরঞ্জাম।


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

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

আমি সেই সফ্টওয়্যারটি তৈরি করার প্রক্রিয়ায় - সফ্টওয়্যারটি যে বাস্তব-জগতের জিনিসগুলি নিয়ে কাজ করবে তার বিশদ বিমূর্ত করার বিষয়ে কথা বলছিলাম। রিয়েল-ওয়ার্ল্ড সত্তাকে (পুনরায়) ডিজাইনের জন্য (সফ্টওয়্যার) বিমূর্ততা ব্যবহার করে বলা হয়েছে যে আসল-ওয়ার্ল্ড জিনিসটি বোঝানো হয়নি (এটি "সফটওয়্যার সিস্টেমগুলি" "সিস্টেম" ইন "হিসাবে ছিল না তবে এটি সিস্টেমের নকশায় কিছু সহায়ক ইঙ্গিত সরবরাহ করে" আমার মন্তব্য উপরে)।
mlvljr

1

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

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

বিমূর্ততা সাধারণত স্তরগুলিতে আসে। শব্দগুলি বিমূর্ততা যা অক্ষর দ্বারা প্রতিনিধিত্ব করা যেতে পারে, যা ঘুরেফিরে শব্দগুলির বিমূর্ততা হয় যা তাদের কণ্ঠস্বর দ্বারা তৈরি বাতাসের কণাগুলির গতির প্যাটার্নের বিমূর্ততা এবং কানের ড্রাম দ্বারা সনাক্ত করা হয় ।

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


1
যদি এটি ফাঁস হয় তবে এটি অবশ্যই বিমূর্ততা নয় ... যথেষ্ট, আসুন সত্য কথা বলা যাক।
mlvljr

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

2
আপনি সর্বদা এমন পরিস্থিতি খুঁজে পেতে পারেন যেখানে কোনও বিমূর্ততা ফুটো হয়ে যায়। নিখুঁত বিমূর্ততা বলে কোনও জিনিস নেই। এটি কতটা ফাঁস করে এবং আপনি এর সাথে বাঁচতে পারবেন তা কেবল বিষয়।
দিমা

@ কোডেক্সআরকানাম ১. একটি রুটিন int(ম্যাক্স.অপ.এস.এস.আই.এস. / ২-১) এর চেয়ে কম গ্রহণ করে এবং অন্যটিকে যা দ্বিগুণ হয় তার ফিরিয়ে দেয়: int f(int a) { return a*2; }২. প্রোটোটাইপ সহ একটি "হ্যান্ডলার" void (*) (void)যখন ডাকা হয় ... আহমম অনুযায়ী এটি বলা উচিত কলারের চুক্তি - উভয়ই বিমূর্ততা উপস্থাপন করে (1 - এর বাস্তবায়নের বিশদগুলির উপর (যা আমরা সরবরাহ করেছি তবে যাগুলির সোর্স কোডে অ্যাক্সেস নেই তাদের পক্ষে অ্যাক্সেসযোগ্য হবে না)), 2 - হ্যান্ডলারটি ঠিক কীভাবে (দ্রষ্টব্য, তবে হ্যান্ডলারের দায়িত্ব দেওয়া ব্যক্তিটির কাছে এটি জানা যায়) এবং ফুটো করবেন না
mlvljr

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

1

আমি এটি যেভাবে লোকদের কাছে বর্ণনা করার চেষ্টা করি, এটি সর্বোত্তম উপায় নাও হতে পারে

এমন একটি প্রোগ্রাম বিবেচনা করুন যা 2 + 2 যোগ করে এবং 4 আউটপুট দেয়

এমন একটি প্রোগ্রাম বিবেচনা করুন যা ব্যবহারকারীর দ্বারা দুটি সংখ্যা ইনপুট যুক্ত করে, x + y = z

কোনটি আরও কার্যকর এবং সাধারণ?


কেট গ্রেগরির উত্তর সম্পর্কে আমার মন্তব্যটি প্রায় সেইটাই ছিল। ;) মজার বিষয়টি হ'ল, কম সাধারণ প্রোগ্রামটি আরও সাধারণ ব্যবহার করতে পারে, এমন একজন ব্যবহারকারীকে সরবরাহ করা যা প্রথমটির সাথে দ্বিতীয়টির সাথে অনুরোধ করেছিল সম্ভবত প্রতিক্রিয়াশীল হতে পারে ...
mlvljr

1

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

বিমূর্ততা এছাড়াও একসাথে যোগদান করা যেতে পারে বৃহত বিমূর্ততা গঠন। উদাহরণস্বরূপ, একটি ক্লাসে ফাংশনগুলি একসাথে রাখা যেতে পারে, একটি প্রোগ্রাম গঠনের জন্য ক্লাসগুলি একসাথে রাখা যেতে পারে, প্রোগ্রামগুলি একসাথে একটি বিতরণ ব্যবস্থা তৈরি করা যায়, ইত্যাদি etc.


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

1

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

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

শেষ পর্যন্ত, প্রোগ্রামারদের প্রধান কাজটি হ'ল সাধারণত সমস্ত কম্পিউটারের বিবরণ বিমূর্ত করা এবং জিইউআই এর মতো একটি সাধারণ ইন্টারফেস সরবরাহ করা যা কম্পিউটারের কাজ কীভাবে যে সম্পর্কে একটি জিনিস জানে না এমন কেউ ব্যবহার করতে পারে।

বিমূর্তনের কয়েকটি সুবিধা:

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

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

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

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


1

ইন্ডিয়ারেশনের একটি অতিরিক্ত স্তর।

আপনি যে অবজেক্টটি ব্যবহার করছেন তা হ'ল একটি Catবা একটি কিনা তা আপনি যত্ন নিতে চান না Dog, তাই সঠিক makeNoise()ফাংশনটি সন্ধান করতে আপনি ভার্চুয়াল ফাংশন সারণির মধ্য দিয়ে যান ।

আমি নিশ্চিত যে এটি 'নিম্ন' এবং 'উচ্চতর' স্তরের ক্ষেত্রেও প্রয়োগ করা যেতে পারে - প্রদত্ত প্রসেসরের জন্য সঠিক নির্দেশনা খুঁজছেন এমন একটি সংকলক বা হেস্কেলের Monadসমস্ত কিছু কল করে returnএবং কম্পিউটেশনাল এফেক্টগুলির তুলনায় হাস্কেল এর বিমূর্ত ব্যবহার সম্পর্কে চিন্তা করুন >>=


1

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

প্রোগ্রামিংয়ের বিমূর্ততা একটি প্রদত্ত প্রসঙ্গের মধ্যে কোনও অবয়বটির মর্ম বোঝার বিষয়ে।

[...]

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

আশা করি এইটি কাজ করবে.


+1, হ্যাঁ, বিষয়টি আমাদের অনেকের কাছে সত্যই ছড়িয়ে পড়েছে বলে মনে হয়;) আমি আশা করি (শেষ পর্যন্ত) আমার নিজের কিছু পয়েন্টের সাথে আপনার উত্তরটি পরিপূরক করে আলোচনার আরও কিছুটা উত্সাহিত করবে।
mlvljr

0

এখানে, একটি অমূলক উত্তর:

প্রোগ্রামিংয়ে দূরে থাকাই ভান করা আপনার এখনকার বিশদটির যত্ন নেওয়ার প্রয়োজন নেই, যদিও বাস্তবে আপনি যা করেন এবং আপনার সব সময় তাদের যত্ন নেওয়া উচিত। এটি মূলত ভান করে।


1
+1, তবে সর্বদা আমি ভাবি না (সত্যই অপ্রয়োজনীয় বিশদ সম্পর্কে ভাবেন :))। প্রাথমিক প্রশ্নটি হ'ল: "এটি কি চিরতরে বিশদ বিবরণী সরিয়ে ফেলা, অস্থায়ীভাবে সেগুলি ভুলে যাওয়া বা এমনকি কোনও উপায়ে এটি ব্যবহার না করে ব্যবহারের বিষয়ে?"
mlvljr

1
আজ আমার গ্রাহকদের কাছে কতগুলি ফটোগুলি আঘাত করেছে তা আমি চিন্তা করি না।
ফ্ল্যামিংপেনগুইন

0

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

বিমূর্ততা এমন একটি জিনিস যা আপনাকে এমন কিছুতে বাস্তবতার ব্যাখ্যা করতে দেয় যা এ থেকে স্বতন্ত্র হতে পারে। আপনি একটি সৈকত এবং একটি স্বপ্ন বিমূর্ত করতে পারেন, কিন্তু সৈকত বিদ্যমান তবে স্বপ্নটি নেই। তবে আপনি উভয়ের অস্তিত্ব বলতে পারেন, তবে এটি সত্য নয়।

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

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

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

একটি ধারণা যা একটি ধারণার দ্বারা নিয়ন্ত্রিত হয়, সাধারণভাবে, নিজেকে "বুঝতে" পারে না। এই কারণেই আমরা godশ্বরের প্রতি বিশ্বাস স্থাপন করার চেষ্টা করি এবং কেন আমাদের মস্তিষ্ক বুঝতে খুব কষ্ট হয়।

আমি কি এখন আমার পদক পেতে পারি?


0

আকর্ষণীয় প্রশ্ন। আমি অ্যাবস্ট্রাকশনের এমন একটি সংজ্ঞা জানি না যা প্রোগ্রামিংয়ের ক্ষেত্রে প্রযোজ্য বলে বিবেচিত হয়। যদিও অন্যান্য লোকেরা সিএস তত্ত্ব বা গণিতের বিভিন্ন শাখা থেকে কিছু সংজ্ঞায় লিঙ্ক সরবরাহ করেছে; আমি "supervenience" থেকে ঠিক একই ভাবে, এটা ভাবতে চাই দেখতে http://en.wikipedia.org/wiki/Supervenience

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

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

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

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

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


0

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

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

সুতরাং, সংক্ষেপে বলা যায়, প্রোগ্রামিং বিমূর্তি এমন একটি পদ্ধতির যা আমাদের কোনও সমস্যা বুঝতে দেয়, এটি কিছু পাওয়ার উপায় তবে এটি আসল জিনিসকেই বোঝায় না

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