পদ্ধতিগত প্রোগ্রামিং এবং ওওপির মধ্যে পার্থক্যটি ব্যাখ্যা করতে পারেন?


উত্তর 1:

মূল প্রশ্ন:

পদ্ধতিগত প্রোগ্রামিং এবং ওওপির মধ্যে পার্থক্যটি ব্যাখ্যা করতে পারেন?

উত্তর:

প্রথম জিনিসগুলি প্রথমে নির্ধারণ করা যাক প্রক্রিয়াজাতকরণ এবং অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংয়ের অর্থ কী।

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

এখন, অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং সংজ্ঞায়িত করা যাক।

সংজ্ঞা - অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (ওওপি) এর অর্থ কী? অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (ওওপি) একটি সফ্টওয়্যার প্রোগ্রামিং মডেল যা অবজেক্টগুলির চারপাশে নির্মিত। এই মডেলটি অবজেক্টগুলিতে (ডেটা ফিল্ড) বিভক্ত করে এবং ক্লাসের (পদ্ধতি) ঘোষণার মাধ্যমে অবজেক্টের বিষয়বস্তু এবং আচরণের বর্ণনা দেয়। ওওপি বৈশিষ্ট্যগুলির মধ্যে নিম্নলিখিতগুলি অন্তর্ভুক্ত থাকে: এনক্যাপসুলেশন: এটি প্রোগ্রামের কাঠামোটিকে পরিচালনা করা আরও সহজ করে তোলে কারণ প্রতিটি বস্তুর বাস্তবায়ন এবং রাজ্য পিছনে লুকানো থাকে manage পলিমারফিজম: এর অর্থ হচ্ছে বিমূর্ত প্রতিষ্ঠানগুলি একাধিক উপায়ে প্রয়োগ করা হয় n তথ্যসূত্র: এটি বাস্তবায়নের টুকরোগুলির শ্রেণিবদ্ধ বিন্যাসকে বোঝায় bঅজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং সরলিকৃত প্রোগ্রামিংয়ের অনুমতি দেয়। এর সুবিধাগুলির মধ্যে পুনঃব্যবহারযোগ্যতা, রিফ্যাক্টরিং, এক্সটেনসিবিলিটি, রক্ষণাবেক্ষণ এবং দক্ষতা অন্তর্ভুক্ত রয়েছে ech টেকোপিডিয়া ব্যাখ্যা করে অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (ওওপি) ওওপি গত দশক বা তারও বেশি সময় ধরে পছন্দের প্রোগ্রামিং মডেল। ওওপি-র মডিউলার ডিজাইন প্রোগ্রামারগুলিকে প্রচুর পরিমাণে সিক্যুয়াল কোডের পরিবর্তে ম্যানেজযোগ্য খণ্ডগুলিতে সফ্টওয়্যার তৈরি করতে সক্ষম করে O ওওপি-র দুর্দান্ত সুবিধাগুলির মধ্যে একটি হ'ল স্কেলিবিলিটি, অবজেক্ট এবং সংজ্ঞাগুলির কোনও সীমাবদ্ধতা নেই। এছাড়াও, পদ্ধতি থেকে ডেটা পৃথক করা পুরানো লিনিয়ার সফ্টওয়্যার ভাষায় পাওয়া একটি সাধারণ সমস্যা প্রতিরোধ করে। যদি কোনও ত্রুটি কোনও রৈখিক কোডে উপস্থিত হয় তবে এটি কোনও সিস্টেমের মাধ্যমে অনুবাদ করা যায় এবং হার্ড-টু-ট্রেস ত্রুটির জনসাধারণ তৈরি করতে পারে। বিপরীতে, একটি ওওপি প্রোগ্রাম, এর পদ্ধতি এবং ডেটা পৃথক করে এমন প্রসারিত ত্রুটিগুলির পক্ষে সংবেদনশীল নয় P জনপ্রিয় ওওপি ভাষাগুলিতে জাভা, ভাষার সি-পরিবার, ভিবি.এনইটি শপ এবং পাইথন অন্তর্ভুক্ত রয়েছে o সো-কথিত "খাঁটি" ওওপি ভাষা স্কেলা, রুবি, আইফেল, জ্যাডি, স্মলটাক এবং পান্না অন্তর্ভুক্ত।

সংজ্ঞাগুলির উত্স অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (ওওপি) কী থেকে আসে? - টেকোপিডিয়া থেকে সংজ্ঞা এবং কার্যবিবরণী ভাষা কী? - টেকোপিডিয়া থেকে সংজ্ঞা

এখন। আসুন পার্থক্য বাস্তবায়ন বুদ্ধিমান দেখুন।

আমরা প্রক্রিয়াগত সাথে শুরু করব, এবং এটির সবচেয়ে সহজ উপায় হ'ল বিশেষত আরডুইনোর সাথে সি ভাষা ব্যবহার করা কারণ এটি আমি জানি I

আমি ব্লিঙ্কিং লাইট টিউটোরিয়ালটিকে ভিত্তি হিসাবে ব্যবহার করার সিদ্ধান্ত নিয়েছি কারণ এটি একটি প্রাথমিক বাস্তবায়ন।

// আপনি পুনরায় সেট বা চাপলে বোর্ড অকার্যকর সেটআপ () {// আউটপুট হিসাবে ডিজিটাল পিন LED_BUILTIN আরম্ভ করুন একবার সেটআপ ফাংশন চলে। পিনমোড (LED_BUILTIN, আউটপুট); } // লুপ ফাংশন বার বার চিরতরে অকার্যকর লুপ () {ডিজিটাল রাইট (LED_BUILTIN, HIGH); // এলইডি চালু করুন (উচ্চ মানের ভোল্টেজ স্তর) বিলম্ব (1000); // দ্বিতীয় ডিজিটাল লেখার জন্য অপেক্ষা করুন (LED_BUILTIN, LOW); // ভোল্টেজ LOW বিলম্ব (1000) করে এলইডি বন্ধ করুন; // এক সেকেন্ডের জন্য অপেক্ষা করুন}

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

সি # এবং ওওপি উদাহরণ সময়।

সিস্টেম ব্যবহার করে; সিস্টেম.কলেশন.জেনারিক ব্যবহার করে; System.Linq ব্যবহার করে; System.Text ব্যবহার করে; নেমস্পেস ওফস {পাবলিক ক্লাস গ্রাহক {// সদস্য ভেরিয়েবল পাবলিক ইন কাস্টিড; পাবলিক স্ট্রিং নাম; পাবলিক স্ট্রিং ঠিকানা; // ক্ষেত্রের গ্রাহককে সূচনা করার জন্য কনডাক্টর () {গ্রাহক = 1101; Name = "টম"; ঠিকানা = "মার্কিন যুক্তরাষ্ট্র"; customer // গ্রাহক রেকর্ড প্রদর্শনের জন্য পদ্ধতি (কার্যকারিতা) পাবলিক শূন্য ডিসপ্লে ডেটা () so কনসোল.উরাইটলাইন ("গ্রাহক =" + গ্রাহক); Console.WriteLine ( "name =" + + নাম); Console.WriteLine ( "ঠিকানার =" + + ঠিকানা); } // এন্ট্রি পয়েন্টের জন্য কোড}} শ্রেণি প্রোগ্রাম {স্ট্যাটিক অকার্যকর মূল (স্ট্রিং [] আরগস) {// অবজেক্ট ইনস্ট্যান্টেশন গ্রাহক আপত্তি = নতুন গ্রাহক (); // আপত্তি কল করার পদ্ধতি। ডিসপ্লেডেটা (); // ফিল্ডস কল করে কনসোল.উরাইটলাইন (জেজ.কাস্টআইডি); Console.WriteLine (obj.Name); Console.WriteLine (obj.Address); }}}

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


উত্তর 2:

জাভাতে ওওপিএস ধারণা

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


উত্তর 3:

প্রক্রিয়াজাতীয় প্রোগ্রামিং প্রাথমিক বিমূর্তকরণ প্রক্রিয়া হিসাবে পদ্ধতি সহ প্রোগ্রামিং হয়। হাহ।

একটি পদ্ধতি কি? এটি একটি নামযুক্ত কোডের গলদ যা নাম অনুসারে আহ্বান করা যেতে পারে, এবং যা প্রেক্ষাপট, পরামিতিগুলি থেকে প্রেক্ষাপট থেকে মান এবং রেফারেন্স গ্রহণ করে এবং কিছু কাজ করার পরে সেই প্রসঙ্গে মান এবং রেফারেন্সগুলি ফিরে আসতে পারে।

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

এটি মডেলের পক্ষে কঠোরভাবে প্রয়োজনীয় নয় তবে আমি এমন ভাষা সম্পর্কে ভাবতে পারি না যা তার নীতি বিমূর্ত পদ্ধতি হিসাবে পদ্ধতিগুলি ব্যবহার করে যা প্রবাহের নিয়ন্ত্রণও রাখে না সুপরিচিত অর্ধ-যাদুর একই সেট ব্যবহার করে using ভালো জিনিস:

যদি (শর্ত) {doThisTing ()} অন্য {doThatTing ()

এবং

যখন (শর্ত) {keepOnDoingThisTing ()}

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

বিকল্প পছন্দ

  • যদি তা না হয় তবে (বুলেটিয়ান ভিত্তিতে দুটি পছন্দ) কেস বা স্যুইচ (যে কোনও সেটের ভিত্তিতে অনেক পছন্দ)

পুনরাবৃত্তি

জ্ঞাত সীমানা সহ:

  • লুপগুলির জন্য (সাধারণত প্রদত্ত সংখ্যার পুনরাবৃত্তি) ফোরচ লুপগুলি (কিছু সংখ্যার আকার হিসাবে বহুবার পুনরাবৃত্তি হতে পারে, সম্ভবত সদস্যদের নিজেরাই)

অ্যাড-হক সীমা সহ:

  • (1 বা আরও পুনরাবৃত্তি) করার সময় (0 বা আরও পুনরাবৃত্তি) করুন

এবং দুঃখজনকভাবে অপ্রিয়:

  • প্রস্থান যখন লুপ

যা অন্তত একবার প্রস্থান করার আগে কোডটি কার্যকর করে এবং প্রস্থান শূন্য বা তার বেশিবারের পরে কোড কার্যকর করে।

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

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

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

অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং হ'ল প্রাথমিক বিমূর্তন প্রক্রিয়া হিসাবে অবজেক্টের সাথে প্রোগ্রামিং করা হয়। হাহ।

একটি বস্তু কি? এটি একটি দীর্ঘকালীন গণনামূলক সত্তা যা কিছু করতে বলা যেতে পারে। বস্তু-ভিত্তিক প্রোগ্রামিংয়ের একটি প্রত্নতাত্ত্বিক এবং অনুকরণকারক হ'ল স্মলটাক। স্মলটাল্কে প্রতিটি মান একটি বস্তু (বা কমপক্ষে, খুব কম মান যা অবজেক্ট নয় সেগুলি দেখতে যেমন তৈরি হয় তেমন)। একে অপরকে বার্তা প্রেরণ করে গননা এগিয়ে যায়। স্মলটাকের বাস্তবায়ন কিছুটা হলেও পরিবর্তিত হয় তবে এটি সাধারণ ধারণা:

অবজেক্টস স্মৃতিতে প্রায় সেট। যখন কোনও বস্তু অন্য বস্তুটি কিছু করতে চায়, তখন এটি তার জন্য জিজ্ঞাসা করে একটি বার্তা তৈরি করে এবং এটি উদ্দেশ্যযুক্ত বস্তুর কাছে প্রেরণ করে। বার্তা অবজেক্ট are রাষ্ট্রগুলি বজায় রাখার জন্য অবজেক্টস দায়ী, এটাই হ'ল তারা ভেরিয়েবল রাখে। তারা কোড চালায় না। যখন কোনও বস্তু কোনও বার্তা পায় এটি এটি তার শ্রেণিতে প্রেরণ করে। ক্লাসগুলি অবজেক্ট are শ্রেণিগুলি অবজেক্ট তৈরি ও পরিচালনার জন্য দায়বদ্ধ, তারা কোড চালায় না। ক্লাসটি তার মেটাক্লাসে বার্তাটি দেয়। ধাতব চশমা বস্তু হয়। মেটাক্লাসগুলি পদ্ধতি পরিচালনা করার জন্য দায়বদ্ধ। মেটাক্লাস এর পদ্ধতিগুলি দেখায় এবং বার্তার সাথে সম্পর্কিত একটিটি আবিষ্কার করে। পদ্ধতিগুলি অবজেক্টস। পথে, বার্তাটি অবজেক্টটি বিভিন্ন অতিরিক্ত তথ্য দিয়ে সজ্জিত করা হয়েছিল, এতে বার্তাটি প্রাপ্ত वस्तुটির একটি উল্লেখ উল্লেখ রয়েছে। পদ্ধতিটি চলমান কোডের জন্য দায়ী এবং এটি করতে মূল বার্তায় যে কোনও যুক্তি ব্যবহার করা হয়েছে তা ব্যবহার করে। পদ্ধতিটি বার্তাটি প্রাপ্ত বস্তুর প্রসঙ্গে তার কোড চালায়। পদ্ধতির কোডটি অন্য বিষয়বস্তুগুলি তৈরি এবং প্রেরণের জন্য কেবলমাত্র বার্তাগুলির স্ক্রিপ্ট। যদি মেটাক্লাস বার্তাটির সাথে মেলে এমন কোনও পদ্ধতি খুঁজে না পায় তবে অনুসন্ধানের ফলে অবজেক্টের ক্লাসের পিতামাতাদের ক্লাসগুলির মেটাচ্লাসগুলি শুরু হয়। একে বলা হয় “উত্তরাধিকার”।

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

স্মল্টাল্কে প্রোগ্রামিং অর্থ হ'ল স্ক্রিপ্টিং বার্তার সংমিশ্রণ পদ্ধতিগুলিতে যেতে পাঠায় এবং পদ্ধতিগুলিতে বাস করার জন্য নতুন ক্লাস (মেটাক্লাস সহ) তৈরি করা। এবং এটি নিয়ন্ত্রণের সমতুল্যের মতোই সত্য কারণ এটি কোনও কিছুই নয় অন্য।

পদ্ধতিগত ভাষায় আপনি সংকলনের প্রতিটি সদস্যের উপর এই সিউডো কোডের মতো কিছুটা কোড সহ কিছু পদক্ষেপ নিতে পারেন:

ভবিষ্যদ্বাণী (সংশ্লেষে থিহিং) করুন

একটি সাধারণ স্মার্টলাকের বার্তার প্রেরণের সমতুল্য স্ক্রিপ্টটি দেখতে দেখতে এটি হতে পারে:

aClaration do: [aHing | aThis takeThisAction]।

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

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

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