OOP What The Heck is This? part(1)

Alamin Sheikh
2 min readFeb 15, 2021

--

collect from pixbay.com

OOP stands for Object Oriented Programming

আপনি হয়ত শুনে থাকবেন Object Oriented Programming না জেনে কোন সফটওয়্যার ডেভেলপ করা যায় না ।

তাহলে আমদের Object Oriented Programming জানাটা কি খুব দরকার? well, তাহলে OOP আসার পূর্বে ডেভেলপেরা কিভাবে কোড করত? সহজ উত্তর procedural ভাবে, ওকে procedural টা আবার কি, আমরা তাহলে কিছু এক্সাম্পেল দেখিঃ

String name = "name"
String email = "email@gmail.com"
String password = "xyz"
String username ="username"

User createUser (/* data */) {};
void login (/* data */){};
void logout (/* data */) {};

এখানে দেখানো হয়েছ কিভাবে একজন ইউজার এর ডাটা নিয়ে কাজ করবেন। তাহলে এখন প্রশ্ন হল যদি অনেক ইউজার থাকে তাহলে কি করব ?

String name = "name"
String email = "email@gmail.com"
String password = "xyz"
String username ="username"
String name2 = "name"
String email2 = "email@gmail.com"
String password2 = "xyz"
String username2 ="username"
User createUser (/* data */) {};
void login (/* data */){};
void logout (/* data */) {};

এভাবে যদি হাজার ইউজার হয় তাহলে কি হবে? কি এখন বুজতেই পারছেন কাজটা কত কঠিন থেকে কঠিন তর হবে। createUser চাইলে name এবং name2 দুইজন কেই অ্যাক্সেস করতে পারছে কি একটা বাজে অবস্থা , হাঁ, তবে আমরা কিন্তু এটা এখনো ব্যবহার করি C প্রোগ্রামিং ল্যাঙ্গুয়েজ ।

এই প্রবলেমটা পরে সমাধান করা হল struct এর মাধ্যমে, ওকে তাহলে struct কি করল, একটা সিমপ্লে কাজ করল, জাস্ট একটা structure বানিয়ে দিল যেটার মধ্য সব ডাটা গ্রুপ আকারে বানানো থাকবে তারপর function or method জাস্ট কল করবে void login(/* struct data */) এইটাকে আমরা একটা template বলতে পারি, এইটার মধ্য আমরা অনেক গুলা ইউজার object তৈরি করে রেখে দিতে পারি ।

__struct__
String name = "name"
String email = "email@gmail.com"
String password = "xyz"
String username ="username"
__struct__
Struct user1 = {/*data*/}
Struct user2 = {/*data*/}
Struct user3 = {/*data*/}
Struct user4 = {/*data*/}
login (Struct user1)
logout (Struct user2)

তবে এইটার কিছু disadvantage আছে

  • Code is not reusable
  • Large code base is hard to manage
  • Difficult to tracing & fixing bugs
  • Data is exposed to whole program
  • Here, operation’s priority is higher than data
  • Difficult to relate with real world data

আরও অনেক অনেক প্রবলেম আছে তাহলে এইটার সমাধান কি ??

সমাধান একটাই Object Oriented Programming

Please read more about OOP part 2…..

--

--

Alamin Sheikh
Alamin Sheikh

Written by Alamin Sheikh

Experienced Front-End Software Developer at Akij iBOS Limited, specializing in JavaScript, TypeScript and ReactJs.

No responses yet