বিমূর্ততা ভিএস তথ্য লুকিয়ে থাকা ভিএস এনক্যাপসুলেশন


167

আপনি কি আমাকে বলতে পারেন বিমূর্তি এবং তথ্য গোপনের মধ্যে পার্থক্য কী সফটওয়্যার বিকাশে ?

আমি দ্বিধান্বিত. বিমূর্ততা কোনও কিছুর পুরো বিবরণ গোপন করে বিশদ বাস্তবায়ন এবং তথ্য গোপন করে।

আপডেট: এই তিনটি ধারণার জন্য আমি একটি ভাল উত্তর পেয়েছি। নিচে পৃথক উত্তর দেখার থেকে নেওয়া বিভিন্ন উদ্ধৃতির জন্য সেখানে


"এনক্যাপসুলেশন হ'ল তথ্যকে এমনভাবে প্যাকেজিংয়ের কৌশল যা কোনও গোপনীয় জিনিস লুকানো উচিত এবং যা দৃশ্যমান হওয়ার উদ্দেশ্যে যা তা দৃশ্যমান করে।" ; মনে রাখবেন যে ইনক্যাপসুলেশন তথ্য গোপনের মাধ্যমে অর্জিত হয়।
উলফগারপ্রো


উদ্ধৃতি গিরি ভাঙ্গা
দুয়া

উত্তর:


152

উত্সে যান! গ্রেডি বুচ বলেছেন (অবজেক্ট ওরিয়েন্টেড এনালাইসিস অ্যান্ড ডিজাইন, পৃষ্ঠা 49, দ্বিতীয় সংস্করণে):

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

অন্য কথায়: বিমূর্তি = বাহ্যিকভাবে বস্তু; এনক্যাপসুলেশন (তথ্য গোপনের মাধ্যমে অর্জিত) = অবজেক্টটি অভ্যন্তরীণভাবে,

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

RP


5
আপনি কি বলবেন যে, একইভাবে বিমূর্ততা এবং এনক্যাপসুলেশন পরিপূরক, এনক্যাপসুলেশন এবং তথ্য গোপন করাও পরিপূরক? অবশ্যই, তথ্য গোপনের মাধ্যমে এনক্যাপসুলেশন অর্জন করা যায়, তবে ... তথ্য গোপন করার পদ্ধতিটি কীভাবে encapsulation হয় না?
wulgargarpro


আপনি কি দয়া করে আমাকে বলতে পারেন যে ক্লায়েন্ট কোডের দৃষ্টিকোণের মাধ্যমে অ্যাবস্ট্রাকশনটি ভালভাবে বোঝা যায় যখন পরিষেবা কোড (যেমন এনক্যাপসুলেটেড শ্রেণি নিজেই) দৃষ্টিকোণ থেকে এনক্যাপসুলেশনটি ভালভাবে বোঝা যায় তবে?
ব্যবহারকারী 1338998

: রিয়েল ওয়ার্ল্ড উদাহরণ উপরোক্ত সংজ্ঞা এর জন্য এখানে ব্যাখ্যা করা হয় stackoverflow.com/a/635755/3181500
user3181500

83

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

(সমস্ত উদ্ধৃতি উপরে বর্ণিত নিবন্ধ থেকে নেওয়া হয়েছে।)

বিমূর্ততা:

"বিমূর্ততা সম্পর্কে বিভ্রান্তির একটি বিষয় হ'ল এটি প্রক্রিয়া এবং সত্তা উভয়ই হিসাবে ব্যবহার। সত্তা, কোনও আসল আইটেমের জন্য কোনও মডেল, একটি ভিউ বা অন্য কোনও ফোকাস উপস্থাপনা বোঝায়। "

তথ্য লুকানো:

"এর ইন্টারফেস বা সংজ্ঞাটি এর অভ্যন্তরীণ কাজগুলি সম্পর্কে যতটা সম্ভব প্রকাশ করতে বেছে নেওয়া হয়েছিল।"- [পার্নাস, 1972 খ]

"বিমূর্ততা কোন তথ্য গোপন করা উচিত তা চিহ্নিত করার কৌশল হিসাবে ব্যবহার করা যেতে পারে […]"

"লোকেরা যখন তথ্য গোপনের মধ্যে পার্থক্য করতে ব্যর্থ হয় এবং কোন তথ্য (যেমন, বিমূর্তি) কোন তথ্য গোপন করা হয় তা চিহ্নিত করতে সহায়তা করার জন্য বিভ্রান্তি দেখা দিতে পারে।"

encapsulation:

"এটি […] বলতে কিছু কিছু সংগ্রহের আশেপাশে ধারণামূলক বাধা, একটি ক্যাপসুল তৈরি বোঝায়" " - [ওয়ার্ফস-ব্রক এট আল, 1990]

"একটি প্রক্রিয়া হিসাবে, এনক্যাপসুলেশন বলতে একটি […] ধারকটির মধ্যে এক বা একাধিক আইটেমকে আবদ্ধ করার কাজ করে Enc

"যদি এনক্যাপসুলেশনটি 'তথ্য গোপনের মতো একই জিনিস' হয়ে থাকে, তবে কেউ যুক্তি তৈরি করতে পারে যে 'যা কিছু ছিল তা encapsulated ছিল তাও গোপন ছিল' ' এটি অবশ্যই সত্য নয়। "

উপসংহার:

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


ব্যবহারিকভাবে দুর্দান্ত ব্যাখ্যা। জাভাতে কংক্রিটের উদাহরণ প্রদান করা দুর্দান্ত হবে। আমার কাছে মনে হয় যে জাভাতে সেটার / গেটর বাস্তবায়নটি লুকিয়ে রাখে, তাই অর্জন Information Hiding(বা বাস্তবায়ন লুকিয়ে থাকে), তবে একটি জেনেরিক classএনক্যাপসুলেশন অর্জন করে এবং বিমূর্ততা privateঅ্যাক্সেসের মাধ্যমে অর্জন করা হয়
abarik

57

Abstraction মৌলিক কার্যকারিতার উপরে একটি স্তর সরবরাহ করে বাস্তবায়ন বিশদটি গোপন করছে।

Information Hidingযে প্রয়োগটি দ্বারা প্রভাবিত হচ্ছে যা তথ্য গোপন করছে। privateএবং ব্যবহারpublic অধীনে আসে। উদাহরণস্বরূপ, ক্লাসের ভেরিয়েবলগুলি লুকিয়ে রাখা।

EncapsulationClassপ্রোগ্রামিংয়ে যেমন একটি গোষ্ঠীতে যেমন অনুরূপ সমস্ত ডেটা এবং ফাংশন রাখছে ;Packetনেটওয়ার্কিং এ।

ক্লাস ব্যবহারের মাধ্যমে, আমরা সব তিনটি ধারণার বাস্তবায়ন - Abstraction, Information HidingএবংEncapsulation


33

সহজ ধারণাটি জটিল করবেন না দয়া করে।

এনক্যাপসুলেশন : একক ইউনিটে ডেটা এবং পদ্ধতিগুলি গুছানো হ'ল এনক্যাপসুলেশন (উদাঃ শ্রেণি)

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

উদাহরণ এবং আরও তথ্য পেতে:

http://thecodekey.com/C_VB_Codes/Encapsulation.aspx

http://thecodekey.com/C_VB_Codes/Abstraction.aspx

অনুমোদিত সংজ্ঞা এখানে

পিএস: সুমিতা অরোরা রচিত সি ++ নামক একটি বই থেকে আমরা সংজ্ঞাটিও মনে করি যা আমরা একাদশ শ্রেণিতে পড়েছি;)


6

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

তথ্য গোপন করা হ'ল নীতিটি যে কোনও সফ্টওয়্যার উপাদানগুলির (যেমন একটি শ্রেণি) ব্যবহারকারীরা কীভাবে উপাদানটি আরম্ভ করতে এবং অ্যাক্সেস করবেন তার প্রয়োজনীয় বিবরণগুলি জানতে হবে এবং বাস্তবায়নের বিশদটি জানতে হবে না।

সম্পাদনা : আমি আমার কাছে মনে হয় যে বিমূর্তি বাস্তবায়নের কোন অংশগুলি লুকানো উচিত তা সিদ্ধান্ত নেওয়ার প্রক্রিয়া

সুতরাং এটি বিমূর্তকরণ VERSUS তথ্য গোপন করা নয়। এটি ভিআইএ বিমূর্ততা লুকিয়ে রাখার তথ্য।


4

বিমূর্তন

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

encapsulation

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


3

বিমূর্তি প্রয়োগের সাথে সাথে প্রয়োগের বিশদটি গোপন করছে।

আপনি এমন কিছু উচ্চ পর্যায়ে বিমূর্ত করেছেন যে কোনও ক্রিয়া সম্পাদন করতে আপনাকে খুব সাধারণ কিছু করতে হবে।

তথ্য গোপন করা বাস্তবায়নের বিশদটি গোপন করছে। প্রোগ্রামিং শক্ত। আপনার সাথে ডিল এবং পরিচালনা করার জন্য প্রচুর জিনিস থাকতে পারে। আপনি চান / খুব কাছের ট্র্যাক রাখা প্রয়োজন ভেরিয়েবল হতে পারে। তথ্য গোপন করা নিশ্চিত করে যে আপনি প্রকাশ্যে প্রকাশ করেছেন এমন ভেরিয়েবল বা পদ্ধতি ব্যবহার করে কেউ দুর্ঘটনাক্রমে কিছু ভঙ্গ করে না।

এই 2 ধারণাগুলি খুব ঘনিষ্ঠভাবে অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ে আবদ্ধ।


3

বিমূর্ততা - এটি অপ্রাসঙ্গিক এবং ক্লান্তিকর বিবরণ না দিয়ে কোনও জিনিসের প্রয়োজনীয় বৈশিষ্ট্যগুলি চিহ্নিত করার প্রক্রিয়া।

এনক্যাপসুলেশন - এটি একক ইউনিটে এই ডেটা ম্যানিপুলেট করার ডেটা এবং ফাংশনগুলি বদ্ধ করার প্রক্রিয়া।

বিমূর্তি এবং এনক্যাপসুলেশন সম্পর্কিত তবে পরিপূরক ধারণা cep

  1. বিমূর্ততা প্রক্রিয়া। এনক্যাপসুলেশন হল এমন পদ্ধতি যা দ্বারা বিমূর্তি প্রয়োগ করা হয়।

  2. বিমূর্ততা একটি বস্তুর পর্যবেক্ষণযোগ্য আচরণের উপর দৃষ্টি নিবদ্ধ করে। এনক্যাপসুলেশন বাস্তবায়নের উপর আলোকপাত করে যা এই আচরণকে বৃদ্ধি দেয়।

তথ্য হিডিং - এটি কোনও সামগ্রীর বাস্তবায়ন বিবরণ গোপন করার প্রক্রিয়া। এটি এনক্যাপসুলেশনের ফলাফল।


2

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


2

বিমূর্ততা: অ্যাবস্ট্রাকশন হ'ল ধারণা / কৌশল যা কোনও বস্তুর বাহ্যিক দৃষ্টিভঙ্গি কী হওয়া উচিত তা চিহ্নিত করতে ব্যবহৃত হয়। কেবলমাত্র প্রয়োজনীয় ইন্টারফেস উপলব্ধ।

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

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


2

ফাঁসী বিমূর্তির আইন সম্পর্কে জোয়েলের পোস্ট দেখুন

JoelOnsoftware

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

তথ্য গোপনের জন্য, আমি জ্যাম দেওয়ার সাথে একমত।


2

খুব সংক্ষেপে

এনক্যাপসুলেশন : - তথ্য গোপন করা

বিমূর্ততা : - বাস্তবায়ন গোপন

Abstractionwhat the object doesএনক্যাপসুলেশন মানে যখন আপনাকে ফোকাস করতে দেয়how an object works


1

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

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


1

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

সুতরাং, তথ্য গোপন করা একটি লক্ষ্য, বিমূর্ততা একটি প্রক্রিয়া এবং এনক্যাপসুলেশন একটি কৌশল।


আপনি কি এর জন্য জাভা উদাহরণ সরবরাহ করতে পারেন?
চিন্ময়

1

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


1

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

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

এনক্যাপসুলেশন একটি প্রোগ্রামিং ভাষার বৈশিষ্ট্য।


1

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

বিমূর্ততা আপনাকে আরও বিমূর্ত চিত্র, 10,000 প্রকারের ধরণের ধরণের চিত্র দিয়ে জটিলতা আড়াল করে, যখন এনক্যাপসুলেশন অভ্যন্তরীণ কাজকে গোপন করে যাতে আপনি পরে এটি পরিবর্তন করতে পারেন। অন্য কথায়, বিমূর্ততা নকশা স্তরে বিশদগুলি গোপন করে, অন্যদিকে এনক্যাপসুলেশন বাস্তবায়ন স্তরে বিশদটি গোপন করে।


0

উপরের সমস্ত উত্তর একের পর এক পড়ার পরে আমি নিজেকে পোস্ট করা থেকে বিরত থাকতে পারি না

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

এনক্যাপসুলেশন যদিও উপর থেকে পুরোপুরি পরিষ্কার ->

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

রেফারেন্স উইকি


0

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

এনক্যাপসুলেশনটি হ'ল বস্তুটি কীভাবে তৈরি হয় এবং বিমূর্তিটি কীভাবে বাইরের বিশ্বে বস্তুকে দেখা হয়।


0

এনক্যাপসুলেশন: বাঁধাই করা ডেটা এবং পদ্ধতি যেগুলি এতে কাজ করে। এটি অন্যান্য ক্লাসে সমস্ত অন্যান্য পদ্ধতি থেকে ডেটা লুকানোর অনুমতি দেয়। উদাহরণ: MyListবর্গ যে, একটি আইটেম যোগ একটি আইটেম সরান সব আইটেম পদ্ধতি অপসারণ করতে পারেন add, removeএবং removeAllতালিকায় অ্যাক্ট (একটি ব্যক্তিগত অ্যারে) যা সরাসরি বাইরে থেকে অ্যাক্সেস করা যাবে না।

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


0

এনক্যাপসুলেশন- একটি নিয়ন্ত্রিত পদ্ধতিতে অভ্যন্তরীণ ডেটাতে অ্যাক্সেস প্রয়োগ করা বা সদস্যদের সরাসরি অ্যাক্সেস করা থেকে রোধ করা।

বিমূর্ততা- নির্দিষ্ট পদ্ধতির প্রয়োগের বিবরণ গোপন করা বিমূর্ততা হিসাবে পরিচিত

আসুন একটি উদাহরণের সাহায্যে বুঝতে পারি: -

class Rectangle
{
private int length;
private int breadth;// see the word private that means they cant be accesed from 
outside world.
 //now to make them accessed indirectly define getters and setters methods
void setLength(int length)
{  
// we are adding this condition to prevent users to make any irrelevent changes 
  that is why we have made length private so that they should be set according to 
   certain restrictions
if(length!=0)
{
 this.length=length
 }
void getLength()
{
 return length;
 }
 // same do for breadth
}

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

 public int area()
 {
  return length*breadth;
 }

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


0

এই শর্তগুলি মানকযুক্ত, আইইইই সংজ্ঞা রয়েছে তা লক্ষ্য করার মতো, যা https://pascal.computer.org/ এ অনুসন্ধান করা যেতে পারে ।

বিমূর্তন

  1. কোনও নির্দিষ্ট উদ্দেশ্যে প্রাসঙ্গিক তথ্যগুলিকে কেন্দ্র করে এবং তথ্যের বাকী অংশগুলি উপেক্ষা করে এমন একটি অবজেক্টের দর্শন
  2. একটি ভিউ গঠনের প্রক্রিয়া
  3. সরলিকৃত মডেল স্থাপনের জন্য অপ্রাসঙ্গিক বিশদটি দমন করার প্রক্রিয়া, বা সেই প্রক্রিয়াটির ফলাফল

তথ্য গোপন

  1. সফ্টওয়্যার বিকাশের কৌশল যা প্রতিটি মডিউলের ইন্টারফেসগুলি মডিউলের অভ্যন্তরীণ কাজগুলি এবং মডিউলটির ইন্টারফেস স্পেসিফিকেশনে নেই এমন মডিউল সম্পর্কে তথ্য ব্যবহার করা থেকে বিরত থাকে
  2. কোনও একক মডিলে ডিজাইন বা প্রয়োগের সিদ্ধান্তের সংমিশ্রণ যাতে সিদ্ধান্তটি অন্য মডিউল থেকে গোপন থাকে

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

  1. সফ্টওয়্যার বিকাশ কৌশল যা একটি সিস্টেম ফাংশনকে পৃথক করে অথবা মডিউলের মধ্যে থাকা ডেটাগুলিতে ডেটা এবং ক্রিয়াকলাপকে পৃথক করে এবং মডিউলের জন্য সুনির্দিষ্ট স্পেসিফিকেশন সরবরাহ করে consists
  2. ধারণা যে কোনও শ্রেণীর দায়িত্বের নাম, অর্থ এবং মানগুলির অ্যাক্সেস তাদের উপলব্ধিতে অ্যাক্সেস থেকে সম্পূর্ণ পৃথক হয়ে গেছে
  3. ধারণা করুন যে কোনও মডিউলটির বাইরে রয়েছে যা তার অভ্যন্তর থেকে পৃথক, এটির একটি বাহ্যিক ইন্টারফেস এবং অভ্যন্তরীণ বাস্তবায়ন রয়েছে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.