OOP What The Heck is This? part(1)
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…..