ওওপি-তে প্রয়োজনীয় ধারণাগুলির কোনও ধারাবাহিক সংজ্ঞা নেই কেন?


12

আমি প্রোগ্রামিংয়ে খুব নতুন এবং পড়া থেকে কিছুটা বিভ্রান্ত \ বিভিন্ন উত্স থেকে বিভিন্ন কনভেনশন শুনে:

অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংয়ে কি 4 বা 5 টি ধারণা আছে?

একজন নবাগত হিসাবে, আমি বুঝতে পারছি যে এগুলি 5 টি ধারণা:

  • বিমূর্তন
  • উত্তরাধিকার
  • encapsulation
  • পলিমরফিজ্ম
  • modularity

তাহলে কীভাবে আমি আরও "কঠোর" সংজ্ঞা পাই না এবং এই ধারণাগুলির বেশ কয়েকটি ব্যবস্থা আছে বলে মনে হয়?


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

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

9
আরেকটি বিষয় হ'ল সময়ের সাথে সাথে ওওপি পরিবর্তন হচ্ছে। শুরুর সি ++ দিনগুলিতে প্রচুর ফোকাস (আমি জানি ওওপি তার থেকে আরও পিছনে ফিরে যায়) উত্তরাধিকার ও পলিমারফিজমে ছিল। আজকের ফোকাস বিমূর্তি এবং এনক্যাপসুলেশনে অনেক বেশি।
বাঁকানো

3
ওও এর সংজ্ঞাটিতে নির্ভুলতার অভাব সম্পর্কে কিছু আকর্ষণীয় আলোচনা এখানে পাওয়া যাবে: c2.com/cgi/wiki?NobodyAgreesOnWhatOoIs
মিশেলহেনরিচ

উত্তর:


26

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

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


12

অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংয়ে কি 5 বা 4 টি উপাদান রয়েছে?

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

একজন নবাগত হিসাবে, আমি বুঝতে পারছি যে এটি 5 টি উপাদান:

বিমূর্ততা, উত্তরাধিকার, এনক্যাপসুলেশন, বহুকর্ম এবং মডুলারিটি?

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

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

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

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

উদাহরণস্বরূপ, সর্বোত্তম উদাহরণ প্রায়ই যেমন সত্ত্বা পড়ুন Dog, Cat, Elephant, Seagull, Shark, ইত্যাদি প্রায়শই উদাহরণ তাকান এবং অবিলম্বে মনে হয় "OO যেমন পণ্য" নতুনদের "ওহ, আমি একটি বেস নামক সত্তা প্রয়োজন Animal" , এবং তারা এমনকি অপরের সাথে শেষ হতে পারে মধ্যবর্তী সত্তা যেমন Mammalএবং Amphibianএকটি ঝরঝরে উত্তরাধিকারী উত্তরাধিকারী প্রতিটি ক্ষেত্রে আলাদা আলাদা বৈশিষ্ট্য সহ।

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

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

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


2
একটি হাঙ্গর এবং একটি ব্যাঙ উভয় সাঁতার কাটে, তবে একটি মাছ, অন্যটি উভচর। আমি মনে করি সেই উদাহরণটি আপনার বক্তব্যকে ভালভাবে বর্ণনা করে।
রাবারডাক

10

"অবজেক্ট-ওরিয়েন্টেশন" শব্দটি ডাঃ অ্যালান কে দ্বারা তৈরি করা হয়েছিল, সুতরাং তিনি এর অর্থ বলতে কী বোঝাতে পারেন তার প্রামাণিক উত্স এবং তিনি এটিকে সংজ্ঞায়িত করেছেন :

আমার কাছে ওওপি মানে কেবল বার্তা, স্থানীয় ধারণ এবং সুরক্ষা এবং রাষ্ট্র-প্রক্রিয়া লুকানো এবং চূড়ান্তভাবে দেরী-বাঁধাই সমস্ত জিনিস inding

আসুন এটি ভেঙে দিন:

  • বার্তাপ্রেরণ ("ভার্চুয়াল পদ্ধতি প্রেরণ", আপনি যদি স্মলটাকের সাথে পরিচিত না হন)
  • রাষ্ট্র প্রক্রিয়া হওয়া উচিত
    • স্থানীয়ভাবে ধরে রাখা
    • রক্ষিত
    • গোপন
  • সবকিছুর চরম দেরি-বাঁধাই

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

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

সবাইকে স্মরণ করিয়ে দেওয়ার চেষ্টা করার জন্য যে আমি সর্বশেষ ওওপিএসএল-তে কিছু ব্যথা নিয়েছিলাম কেবল একটি মৃদু অনুস্মারক, স্মার্টটালক কেবল এটির বাক্য গঠন বা শ্রেণিকাল পাঠাগার নয়, এটি ক্লাস সম্পর্কেও নয়। আমি দুঃখিত যে আমি অনেক আগে এই বিষয়টির জন্য "অবজেক্টস" শব্দটি তৈরি করেছি কারণ এটি অনেক লোককেই কম ধারণাটিতে ফোকাস দেয় gets

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

(অবশ্যই, আজ, বেশিরভাগ লোকেরা এমনকি বস্তুগুলিতে নয় তবে ক্লাসগুলিতে মনোনিবেশ করে যা আরও বেশি ভুল))

রূপক হিসাবে এবং একটি প্রক্রিয়া হিসাবে উভয়ই মেসেজিং মৌলিক

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

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

সুতরাং, অ্যালান কেয়ের সংজ্ঞাটি দেখার জন্য দুটি উপায় রয়েছে: আপনি যদি এটি নিজের হাতে দাঁড়িয়ে দেখেন তবে আপনি দেখতে পাবেন যে মেসেজিংটি মূলত একটি দেরী-আবদ্ধ পদ্ধতি কল এবং দেরিতে-বাঁধাই বোঝায় এনক্যাপসুলেশন, তাই আমরা সিদ্ধান্ত নিতে পারি যে # 1 এবং # 2 আসলে রিডানডান্ট এবং ওও দেরি-বাঁধাই সম্পর্কে।

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

অনুরূপ পয়েন্টগুলি অন ​​আন্ডারস্ট্যান্ডিং ডেটা অ্যাবস্ট্রাকশন, উইলিয়াম আর কুক দ্বারা পুনর্বিবেচিত এবং "অবজেক্ট" এর আধুনিক সংজ্ঞা, "অবজেক্ট ওরিয়েন্টেড" এর প্রস্তাবনায়ও রয়েছে

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

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

প্রকারভেদ এবং প্রোগ্রামিং ভাষাগুলিতে বেনজামিন পিয়ার্স যুক্তি দেয় যে অবজেক্ট-ওরিয়েন্টেশনের সংজ্ঞায়িত বৈশিষ্ট্যটি ওপেন পুনরাবৃত্তি

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

যেমন আপনি দেখতে পাচ্ছেন, যে ব্যক্তি "ওও" শব্দটি তৈরি করেছিলেন, তিনি বস্তুর উপর একটি বরং রূপক দৃষ্টিভঙ্গি রাখেন, কুকের পরিবর্তে বাস্তববাদী দৃষ্টিভঙ্গি রয়েছে, এবং পিয়ার্স খুব কঠোর গাণিতিক দৃষ্টিভঙ্গি করেছেন। তবে গুরুত্বপূর্ণ বিষয়টি হল: দার্শনিক, বাস্তববাদী এবং তাত্ত্বিক সকলেই একমত! বার্তা হ'ল ওওর এক স্তম্ভ। সময়কাল।

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


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

1
@ ডেভিড আর্নোও কি, ডাউনটোট আপনার? সুতরাং কেউ OOP এর অর্থ কী হিসাবে সুপরিচিত বিশেষজ্ঞদের কাছ থেকে বিভিন্ন মতামতের একটি বিস্তৃত তালিকা লিখতে সময় নিয়েছিলেন এবং আপনি একটি বাক্যটির সাথে একমত নন বলে আপনি এটিকে ন্যস্ত করেন? Oookay।
আন্দ্রেস এফ।

2
@AndresF। এই উত্তরটি সংক্ষিপ্ত করে বলা যেতে পারে "যদিও দুটি স্কুল রয়েছে, অ্যালান কায়েস এবং অন্য সবার। কারণ প্রাক্তনটির শব্দের দ্বারা তিনি স্বয়ংক্রিয়ভাবে সঠিক এবং যার সাথে একমত নন সবাই ভুল"। এটি কর্তৃপক্ষের মিথ্যা উত্তরের আবেদন। এইভাবে ডাউনভোট।
ডেভিড আরনো

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

3
এক জিনিস: messaging.He চর্চিত কি ভাষায় সাধারণভাবে হিসাবে বর্ণনা না OO যেমন পণ্য যে ভাষায় সাধারণভাবে OO যেমন পণ্য হিসাবে বর্ণনা উদাসীন থাকে, এবং তিনি এক জিনিস পাওয়া গেছে: মেসেজিং। আইভরি টাওয়ার তাত্ত্বিকটি λ-ক্যালকুলাস নেয় এবং বৈশিষ্ট্যগুলির ক্ষুদ্রতম সেটটি কীটি দেখতে পায় যা সাধারণত ওও হিসাবে বর্ণনা করা হয় এমন কিছু পাওয়ার জন্য যুক্ত করতে হবে, এবং তিনি উন্মুক্ত পুনরাবৃত্তিতে পৌঁছেছেন , যা মূলত বার্তাপ্রেরণের জন্য বিল্ডিং ব্লক is ।
Jörg ডব্লু মিটাগ

3

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

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

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

মডিউলগুলি "বৃহত্তর প্রোগ্রামিং" সমর্থন করার জন্য ডিজাইন করা হয়েছে ... যেখানে আপনার কোড-বেসটি একক ব্যক্তির পুরোপুরি বোঝার জন্য খুব বড় হয়ে যায়। এবং আপনার কোডটি আধুনিকীকরণের জন্য আপনার প্রোগ্রামিং ভাষায় মডিউলগুলির প্রয়োজন নেই


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


2
+1 মড্যুলার্টিটি আসলে বেশিরভাগ সফ্টওয়্যার সিস্টেমে ব্যবহারযোগ্য প্রোগ্রামিং ভাষা এবং দৃষ্টান্ত নির্বিশেষে পছন্দসই বৈশিষ্ট্য হিসাবে স্বীকৃত। অনেকগুলি ভাষা যা ওও নয় মডুলারাইজেশনের জন্য সমর্থন করে।
আন্দ্রেস এফ।

+1 @ অ্যান্ড্রেসএফ। মন্তব্য নেই। প্রকৃতপক্ষে, "স্ট্রাকচার্ড প্রোগ্রামিং" এবং "পদক্ষেপ অনুসারে পরিমার্জন" (কোড স্ট্রাকচার চিন্তা করার কৌশল) "আরও জটিল সফটওয়্যার তৈরির ফলে ক্রমবর্ধমান জটিলতা" এর চূড়ান্ত থেকে বেরিয়ে এসেছে। এটি কোবোলের আগে থাকলে ভাষার এমন নেতিবাচক খ্যাতি আইএমএইচও-তে থাকত না। এবং আমি ওওকে বাস্তবতরভাবে কেবল উচ্চতর-অর্ডার কাঠামো হিসাবে দেখি। এবং আমার অর্থ হ'ল ডাব্লু / আউট অন্তর্নিহিত কাঠামো ওও সবচেয়ে খারাপ কোবোলের চেয়ে ভাল নয়।
রাডারবাব
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.