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


137

এখানে এনকেপসুলেশন এবং বিমূর্তনের সংক্ষিপ্ত সংজ্ঞা দেওয়া হল।

বিমূর্ততা:

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

encapsulation:

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

আমরা সংশোধনকারীদের দিয়ে কি অর্জন মত private, publicএছাড়া পাশ দুনিয়া যা কিছুই কিন্তু একটি বিমূর্ততা ধারণা থেকে অপ্রয়োজনীয় বিস্তারিত লুকায়

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

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

আপডেট: - 5 বছর পরে আমি আমার নিজের উত্তর নিয়ে এসেছি যা এই পোস্টে এবং নীচের উত্তরগুলির উপর ভিত্তি করে সংক্ষেপ

  1. বিমূর্তি এবং encapsulation মধ্যে পার্থক্য?
  2. এনক্যাপসুলেশন বনাম বিমূর্ততা বাস্তব বিশ্বের উদাহরণ

উপরোক্ত সংজ্ঞায়িত এনক্যাপসুলেশনটি বিমূর্তির একটি হাতিয়ার তবে আমি এটিকে এমন কোনও শর্ত হিসাবে বিবেচনা করতে চাই যে কোনও শ্রেণি কীভাবে আবশ্যক (কার্যকারিতা / ডেটা অ্যাক্সেস নির্বিশেষে) যেখানে অ্যাবস্ট্রাকশন আপনাকে কংক্রিট বাস্তবায়নের উদ্বেগ থেকে দূরে সরিয়ে দেয়ার বোধ করার অর্থ যেমন নির্বিশেষে কীভাবে নির্বিশেষে এটি হয়ে গেছে এবং ঠিক কী করা যায় এটি উইকিপিডিয়া থেকে করণীয়An 'abstraction' (noun) is a concept that acts as a super-categorical noun for all subordinate concepts, and connects any related concepts as a group, field, or category.
টিআই

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

উত্তর:


98

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

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

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


8
এনক্যাপসুলেশন বলতে বোঝায় যে সম্পর্কিত সম্পত্তি, পদ্ধতি এবং অন্যান্য সদস্যদের একটি গ্রুপ একক ইউনিট বা অবজেক্ট হিসাবে বিবেচিত হয়। msdn.microsoft.com/en-us/library/dd460654.aspx
raberana

1
এনক্যাপসুলেশন বিমূর্তির দিকে নিয়ে যায়।
মার্টিন

124

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

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

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


13
আপনার বিমূর্তকরণের সংজ্ঞাটি আমি যা দেখতে পেয়েছি তার মধ্যে সেরা, আমি জানি আপনি এটি পোস্ট করার পরে 3+ বছর হয়ে গেছে, তবে আপনাকে ধন্যবাদ।
কেসি ক্রুকস্টন

1
বাহ .... বিমূর্ততা .... শিল্পের দিক দিয়ে প্রকাশ করা ... লাল রাগ হতে পারে, এটাই আমাদের জানা দরকার! ধারণাটি দেখার জন্য আপনাকে ধন্যবাদ :-)
স্লোলিয়ারার

এনক্যাপসুলেশন "লুজ কাপলিং এবং উচ্চ সংহতি" অর্জন করতে ব্যবহৃত হয়।
5:40

28

এনক্যাপসুলেশন বিমূর্তির একটি অংশ বা আমরা এটি বিমূর্তির একটি উপসেট বলতে পারি

এগুলি বিভিন্ন ধারণা।

  • অ্যাবস্ট্রাকশন হ'ল একটি অবজেক্টের সমস্ত অপ্রয়োজনীয় / গুরুত্বহীন বৈশিষ্ট্যগুলি পরিমার্জন করার প্রক্রিয়া এবং কেবলমাত্র আপনার বৈশিষ্ট্যগুলি আপনার ডোমেনের জন্য সবচেয়ে উপযুক্ত রাখে।

    যেমন একজন ব্যক্তির জন্য: আপনি প্রথম এবং শেষ নাম এবং এসএসএন রাখার সিদ্ধান্ত নেন। বয়স, উচ্চতা, ওজন ইত্যাদি অপ্রাসঙ্গিক হিসাবে উপেক্ষা করা হয়।

    বিমূর্ততা যেখানে আপনার নকশা শুরু হয়।

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

আমরা কী বলতে পারি যে বিমূর্তিটি এক ধরণের ডিজাইন ধারণা এবং এনক্যাপসুলেশন মূলত বিমূর্তনের সময় ডিজাইনটির বাস্তবায়নের বিষয়ে উদ্বেগ প্রকাশ করে?
এম শচ

1
এনক্যাপসুলেশনে আপনি অপারেশনগুলি সংজ্ঞায়িত করেন যা আপনার ডেটাতে প্রয়োগ করতে পারে / এটি অবশ্যই ডিজাইনের অংশ হতে পারে SSএএসএসএন পুনরুদ্ধার করুন, তবে এটি সংশোধন করবেন না
ক্র্যাটিলাস

25

এনক্যাপসুলেশন ক্যাপসুল বা ইউনিটে অপ্রয়োজনীয় ডেটা লুকিয়ে রাখছে

বিমূর্তি কোনও বস্তুর প্রয়োজনীয় বৈশিষ্ট্য দেখায়

এনক্যাপসুলেশনটি তার সদস্যকে বাইরে শ্রেণি এবং ইন্টারফেস থেকে আড়াল করার জন্য ব্যবহৃত হয় c

Class Learn
{
  private int a;         // by making it private we are hiding it from other
  private void show()   //class to access it
  {
   console.writeline(a);
  }
}

এখানে আমাদের কাছে ইউনিট বা ক্যাপসুল অর্থাৎ ক্লাসে তথ্য মোড়ানো আছে।

অ্যাবস্ট্রাকশন এনক্যাপসুলেশনের ঠিক বিপরীত।

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

 abstract class MobilePhone
    {
        public void Calling();       //put necessary or essential data
        public void SendSMS();       //calling n sms are main in mobile
    }

    public class BlackBerry : MobilePhone   // inherited main feature
    {
        public void FMRadio();            //added new
        public void MP3();
        public void Camera();
        public void Recording();

    }

আমি রাজী. এই ছেলেরা ধরণের বিপরীত। ভাল ওওপগুলি পরিবর্তন হয় না এমন জিনিসগুলিকে বিমূর্ত করে তোলে এবং [যে পরিবর্তনগুলি পরিবর্তিত হয় সেগুলি আবদ্ধ করে] [1]। [1]: নীতি
উইকি ডটকম /…

15

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

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

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

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

তুলনায়, "এনক্যাপসুলেশন" একটি খুব নির্দিষ্ট এবং সীমিত শব্দ। এই প্রশ্নের অন্য কয়েকটি উত্তর ইতিমধ্যে এর জন্য ভাল সংজ্ঞা দিয়েছে।


14

আমার নিজের প্রশ্নের 5 বছর পরে উত্তর দেওয়া হিসাবে আমি মনে করি এটি এখনও আরও বিশদ প্রয়োজন

বিমূর্ততা:

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

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

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

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

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

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

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

এটি এই পোস্টে এবং নীচেরগুলির উত্তরগুলির ভিত্তিতে সংক্ষিপ্তসার

  1. বিমূর্তি এবং encapsulation মধ্যে পার্থক্য?
  2. এনক্যাপসুলেশন বনাম বিমূর্ততা বাস্তব বিশ্বের উদাহরণ

5

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

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


4

এটি আমি এটি বুঝতে পেরেছি:

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

এটি (শ্রেণি) নিজের বা এর সামগ্রীর দৃশ্যমানতার বিষয়ে চিন্তা করে না। যদি আমরা রাষ্ট্র বা কিছু পদ্ধতি গোপন করতে বেছে নিই তবে এটি তথ্য গোপন করা

এখন, উত্তরাধিকারের দৃশ্যটি দেখুন । আমাদের একটি বেস ক্লাস এবং কিছু উত্পন্ন (উত্তরাধিকারসূত্রে) ক্লাস রয়েছে। তো, বেস ক্লাসটি এখানে কী করছে? এটি উত্পন্ন ক্লাস থেকে কিছু জিনিস বিমূর্ত করছে

সব কি আলাদা, তাই না? তবে, আমরা তাদের ভাল মিশ্রিত করতে ভাল অবজেক্ট ওরিয়েন্টেড প্রোগ্রাম লিখি write আশা করি এটা সাহায্য করবে :)


3

বিমূর্ততা কোনও প্রসঙ্গে নির্দিষ্ট, কোনও কিছুর সরল উপস্থাপনা বর্ণিত করে; এটি প্রাসঙ্গিক-অপ্রাসঙ্গিক বিশদ উপেক্ষা করে এবং প্রাসঙ্গিক-গুরুত্বপূর্ণ বিশদটি অন্তর্ভুক্ত করে।

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


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


1

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

উত্তর:

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

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

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

এই বিষয় সম্পর্কে আরও ব্যাখ্যা জন্য এখানে যান


1

অন্যভাবে বোঝার চেষ্টা করি।

অ্যাবস্ট্রাকশন না থাকলে কী ঘটতে পারে এবং এনক্যাপসুলেশন না থাকলে কী ঘটতে পারে।

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

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


1

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

ভাল উদাহরণস্বরূপ, ডিভাইডার একটি শ্রেণি যা দুটি দৃষ্টান্ত ভেরিয়েবল লভ্যাংশ এবং বিভাজক এবং একটি পদ্ধতি getDividedValue রয়েছে।

আপনি কি দয়া করে ভাবতে পারেন, বিভাজকটি যদি 0 তে সেট করা থাকে তবে অভ্যন্তরীণ সিস্টেম / আচরণ (getDivided) ভেঙে যাবে।

সুতরাং, কোনও পদ্ধতির মাধ্যমে ব্যতিক্রম ছুঁড়ে দিয়ে বস্তুর অভ্যন্তরীণ আচরণ সুরক্ষিত হতে পারে।


0

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

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