অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের সুবিধা [বন্ধ]


35

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

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

কেউ দয়া করে আমাকে অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের সুবিধা সম্পর্কে তাদের ধারণা দিতে পারেন?


2
ওহ, দুর্দান্ত - এটি এমন সংজ্ঞা নিয়ে আসা কঠিন যে যারাই বলে যে তারা ওওপ করেন তারা সকলেই সম্মত হবেন! (এমনকি যারা সত্যই কেবল
ওওপি পোশাকগুলিতে

10
এটি সত্যিই মনে হচ্ছে "আমি সি প্রোগ্রামিং পাই না we আমরা কেবল সমাবেশের ভাষা ব্যবহার করতে পারি না?" আমাকে.
tia

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

3
ওওপি সম্পর্কে এখানে আরও নেতিবাচক মন্তব্য: ক্ষতিকারক.ক্যাট-v.org/software/OO_programming , ডিজকস্ট্রা এবং রব পাইকের উদ্ধৃতি সহ।
imgx64

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

উত্তর:


7

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

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

প্রক্রিয়াজাত প্রোগ্রামিং এর মত এটি।

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

নন-অবজেক্ট-ওরিয়েন্টেড সফ্টওয়্যারগুলির উপর অবজেক্ট-ওরিয়েন্টেশনের সুবিধাগুলি হিসাবে:

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

3
আপনি যা কিছু বলেছিলেন তা এখানে সমস্যাটি হাইলাইট করে ফাংশনাল প্রোগ্রামিংয়ের ক্ষেত্রে সমানভাবে প্রয়োগ হয়।
জেসি মিলিকান

1
বাদে ওপি কার্যকরী প্রোগ্রামিং সম্পর্কে জিজ্ঞাসা না করে, তাই আপনার মন্তব্যে যোগ্যতার অভাব রয়েছে। বিশেষত তাই যেহেতু আমার উত্তরটি গ্রহণযোগ্য।
Huperniketes

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

46

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

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

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

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

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

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

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

সম্পাদনা: মন্তব্যে জোয়েলের প্রশ্নের জবাবে,

একটি "অবজেক্ট-ওরিয়েন্টেড প্রোগ্রাম" -তে কী রয়েছে (আপনি বর্ণিত এই অভিনব স্পেসিফিকেশন ব্যতীত) কী আবশ্যক প্রোগ্রাম থেকে মৌলিকভাবে আলাদা তা আপনি ব্যাখ্যা করতে পারেন? আপনি কীভাবে "বল ঘূর্ণায়মান হন?"

এখানে একটু অস্বীকৃতি। আমার "একটি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রাম" এর মডেলটি মূলত ডেল্ফি মডেল, যা সি # /। নেট মডেলের সাথে খুব মিল, যেহেতু তারা প্রাক্তন ডেলফি দলের সদস্যদের দ্বারা তৈরি হয়েছিল। আমি এখানে যা বলছি তা অন্য ওও ভাষায় প্রয়োগ হতে পারে না বা ততটুকু প্রয়োগ হয় না।

একটি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রাম হ'ল একটিতে যার মধ্যে সমস্ত যুক্তি বস্তুর চারপাশে গঠন করা হয়। অবশ্যই এটি কোথাও বুটস্ট্র্যাপ করতে হবে। আপনার টিপিক্যাল ডেল্ফি প্রোগ্রামে সূচনা কোড রয়েছে যা কল করে সিঙ্গলটন অবজেক্ট তৈরি করে Application। প্রোগ্রামের শুরুতে, এটি কল করে Application.Initialize, তারপরে Application.CreateFormআপনি শুরু থেকে স্মৃতিতে লোড করতে চান এমন প্রতিটি ফর্মের জন্য একটি কল এবং তারপরে Application.Run,যা পর্দার মূল ফর্মটি প্রদর্শন করে এবং ইনপুট / ইভেন্ট লুপ শুরু করে যা কোনওটির মূল রূপটি তৈরি করে ইন্টারেক্টিভ কম্পিউটার প্রোগ্রাম।

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

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


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

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

1
+1: আমি মনে করি আপনি এটি "মুলত এটি ছোট জিনিসগুলিতে একই জিনিসগুলি পুনরাবৃত্তি করার চেষ্টা করছেন", মূলত বিমূর্তির অন্য একটি স্তর (বা ভাল, আরও বিমূর্ততা তৈরি করার জন্য আরও সম্ভাব্য স্তরের মতো) দিয়ে পেয়েছেন I
n1ckp

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

2
ওওপি-র আসল সুবিধাটি বহিরাগতভাবে নির্দেশ করার জন্য +1। "এর মূল ভিত্তিতে, ওওপি সমস্যাটি ডোমেনকে মডেল করে এমন" স্মার্ট "ডেটা স্ট্রাকচার তৈরি করে জটিলতার উচ্চতর ডিগ্রি আরও ভালভাবে পরিচালনা করার জন্য অত্যাবশ্যক দৃষ্টান্তটি ব্যবহার করার একটি উপায়" "
কার্তিক শ্রীনিবাসন

6

আমি মনে করি ওওপি হ'ল মূলত কেবলমাত্র এমন একটি নাম যা আপনি যেমন করছিলেন তেমনভাবে প্ররোচিত হতে পারে to

আমি যখন বাচ্চা প্রোগ্রামার ছিলাম তখনও ফোর্টরানে, সাব্রোটিনের দিকে পয়েন্টারের মতো জিনিস ছিল। অন্য সাব্রোটিনের পক্ষে যুক্তি হিসাবে সাব্রোটিনে পয়েন্টারটি পাস করতে সক্ষম হওয়া সত্যিই দরকারী।

তারপরে পরবর্তী জিনিসটি যা সত্যই কার্যকর হবে তা হ'ল ডেটা স্ট্রাকচারের রেকর্ডের ভিতরে একটি সাব্রোটিনে পয়েন্টার সংরক্ষণ করা। এইভাবে, আপনি রেকর্ডটি নিজের উপর কীভাবে অপারেশন করবেন "জানে" বলতে পারেন।

আমি নিশ্চিত নই যে তারা কখনই এটি ফোর্টরানে তৈরি করেছিল, তবে সি এবং এর বংশধরদের পক্ষে এটি করা সহজ।

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


5

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

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

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

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

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

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


3

হ্যাঁ, ওওর বিভিন্ন সংজ্ঞা রয়েছে। আমি নিশ্চিত যে আপনি নিজেরাই এগুলি প্রচুর পরিমাণে খুঁজে পেতে পারেন। আমি ব্যক্তিগতভাবে রিস রে: ওওগুলিকে বোঝার উপায় হিসাবে পছন্দ করি। আমি অনুমান করছি আপনি পল গ্রাহামকে উদ্ধৃত করার আগে থেকেই এটি পড়েছেন। (আমি ওও-তে আগ্রহী যে কারও কাছে এটির প্রস্তাব দিই)) আমি এখানে কম-বেশি জাভা সংজ্ঞা গ্রহণ করতে চলেছি {1,2,3,7,8,9}}

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

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

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

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


+1 - দুর্দান্ত উত্তর। "আমি মনে করি না যে ওও ছোট আকারে মারাত্মকভাবে দরকারী" "
কার্তিক শ্রীনিবাসন

এমনকি আমি একটি নিবন্ধও পড়েছি ( dl.acm.org/citation.cfm?id=326103 ) উল্লেখ করে যে ওওপি কোনও সফ্টওয়্যার পণ্যের প্রথম দুটি প্রকাশের জন্য প্রক্রিয়াগতভাবে কোনও বাস্তব উত্পাদনশীলতার সুবিধা আর্টকে প্রদর্শন করে না। যতদূর আমি বুঝতে পেরেছি, কেবল তৃতীয় প্রকাশ থেকে শুরু করে আপনার আসল সুবিধাগুলি রয়েছে কারণ আপনি কোনও পদ্ধতিগত শৈলীর চেয়ে ওও স্টাইলে লিখিত আরও ভালভাবে / রিফ্যাক্টর কোডটি পুনরায় ব্যবহার করতে পারবেন।
জর্জিও

1

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

  • ব্যক্তি একটি অবজেক্ট। একজন ব্যক্তির কিছু বৈশিষ্ট্য রয়েছে যেমন বয়স এবং লিঙ্গ। কোনও ব্যক্তি কাজগুলি করতে পারেন: খাওয়া, ঘুমানো, গাড়ি চালানো।
  • গাড়িও একটি অবজেক্ট (যদিও বিভিন্ন ধরণের)। এটিতে মেক, মডেল এবং বছরের মতো বৈশিষ্ট্যও রয়েছে। একটি গাড়ী জিনিসগুলি করতে পারে: সরানো।

তবে একটি গাড়ি নিজেই চলতে পারে না, এটি চালানোর জন্য একজন ব্যক্তির প্রয়োজন - অবজেক্টগুলির মধ্যে মিথস্ক্রিয়া।


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

1

ওওপি = ডেটা স্ট্রাকচার + বার্তা উত্তরণ + উত্তরাধিকার, এগুলি সবই প্রোগ্রামিং মডেলগুলিতে যৌক্তিক বিবর্তন।

ওওপি প্রায় 90 সেকেন্ডে (প্রোগ্রামারদের দ্বারা) বোঝা যায় (কোনও লিঙ্কের জন্য আমার প্রোফাইল দেখুন)। ধারণাগুলি খুব সহজ।

কীভাবে এটি প্রয়োগ করবেন তা অন্য বিষয়। কেবল যেহেতু আপনি একটি হাতুড়ি দুলতে জানেন তার অর্থ এই নয় যে আপনি কীভাবে একটি বাড়ি ডিজাইন করতে এবং তৈরি করতে জানেন। ;-)


+1 - আমি সম্মত কীভাবে ওওপি প্রয়োগ করতে হবে তা চর্চা ও সময়কে অনেকটা শান্ত করে নিল যদিও বোঝা যাচ্ছে যে এগুলি নিখুঁতভাবে এখানে মূল শব্দটি হওয়ায় তারা খুব বেশি সময় নেয়নি ।
কার্তিক শ্রীনিবাসন

0

আমি কিছুক্ষণ আগে একটি ব্লগ পোস্ট লিখেছিলাম যাতে আপনি সহায়ক পেতে পারেন: পদ্ধতিগত বনাম ওওপি ব্যাখ্যা


আমি জানি না কেন লোকেরা এটিকে ভোট দিয়েছিল! এই নিবন্ধটি সর্বোপরি তুই সবাই মিলে উপরে! আমার ভোট +1
হরিস

এটি ভোট দিয়েছে কারণ এটি কেবলমাত্র একটি লিঙ্ক-অ্যান্ড-রান, যা অত্যন্ত নিরুৎসাহিত। মেটা স্ট্যাকওভারফ্লো প্রশ্নটি দেখুন: যে উত্তরগুলিতে কেবল অন্য কোথাও লিঙ্ক রয়েছে তা কি সত্যিই "ভাল উত্তর" রয়েছে?
icc97

0

আমি প্রথম যেভাবে এটি বুঝতে পেরেছি তা হ'ল:

অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের আগে আপনার স্ট্রাকচার্ড প্রোগ্রামিং ছিল । সমস্ত প্রক্রিয়া চারপাশে কেন্দ্রিক। আপনার নিজের কাছে প্রথম প্রশ্নটি জানতে চাওয়া হ'ল " আমি তথ্যের সাথে কী করতে চাই? "

অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের সাথে এটি ডেটাকে কেন্দ্র করে। আপনি যে প্রশ্নটি নিজেকে জিজ্ঞাসা করতে পেলেন তা হ'ল " ডাইনি তথ্য যা আমার সাথে সম্পর্কিত হতে হবে? " এটি বিমূর্ততা সহজ করে তোলে।


0

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

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

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

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


-1

আমি মনে করি উইকিপিডিয়া পৃষ্ঠাটি মূলসূত্রগুলি পাওয়ার জন্য একটি ভাল জায়গা:
http://en.wikedia.org/wiki/Object-oriented_programming

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

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

আমি আশা করি এটি সাহায্য করবে. এটি সম্পর্কে পড়া এবং কোডের দিকে তাকিয়ে থাকুন এবং এটি হঠাৎ "ক্লিক" হবে। এটা আমার অভিজ্ঞতা ছিল।


ডাউনভোটারের কোনও কারণ দেখাতে হবে?
রেশনালজিক

দেখে মনে হচ্ছে আপনি সম্ভবত জিজ্ঞাসিত পুরো প্রশ্নটি পড়েন নি, লিঙ্কযুক্ত ব্লগ এন্ট্রিতে খুব কম পোস্ট করেছেন। আমি যতদূর বলতে পারি মৌলিক বিষয়ে লেখকের কোনও সমস্যা নেই। সুতরাং, মূলত: -1 একটি প্রশ্নের উত্তর করার জন্য আপনি বরং প্রশ্ন হচ্ছে জিজ্ঞাসা উত্তর দিতে চেয়েছিলেন।
জেসি মিলিকান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.