Skip to Content
TypeScriptObject Oriented TypeScriptParadigm & OOP Basics

Paradigm & OOP Basics

🧠 OOP (Object Oriented Programming) কী?

OOP বা অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং হলো একটি পদ্ধতি যার মাধ্যমে সফটওয়্যার অবজেক্টে ভাগ করে গঠন করা হয়। এর ফলে বাস্তব জগতের বস্তুগুলোর মতো করে সফটওয়্যারে ডেটা এবং ফাংশন একত্রে রাখা হয়। ➡️ এতে কোড বেশি রিইউজেবল, মডিউলার এবং সহজে মেইন্টেইনেবল হয়।

📌 Paradigm কী?

Paradigm অর্থ হলো প্রোগ্রাম লেখার স্টাইল বা পদ্ধতি। ➡️ এটি নির্ধারণ করে আমরা কীভাবে একটি প্রোগ্রাম ডিজাইন ও ইমপ্লিমেন্ট করবো।


🔀 প্রোগ্রামিং-এর প্যারাডাইমসমূহ এবং উদাহরণ

1. 🧾 Procedural Programming (পদ্ধতিগত প্রোগ্রামিং)

ধাপে ধাপে কমান্ড বা ইনস্ট্রাকশন লিখে প্রোগ্রাম করা হয়।

সহজ উদাহরণ (JavaScript):

function greet(name) { console.log("Hello, " + name); } function main() { greet("Rahim"); } main();

2. 🧮 Functional Programming (ফাংশনাল প্রোগ্রামিং)

ফাংশন ব্যবহার করে প্রোগ্রাম ডিজাইন করা হয়। এখানে স্টেট পরিবর্তন এবং সাইড ইফেক্ট কম রাখা হয়।

উদাহরণ (JavaScript):

const add = (a, b) => a + b; console.log(add(5, 3)); // Output: 8

3. 🗣️ Declarative Programming (ঘোষণাভিত্তিক প্রোগ্রামিং)

কী করতে হবে তা বলা হয়, কিভাবে করতে হবে তা নয়।

উদাহরণ (HTML + SQL):

<!-- HTML: একটি বোতাম তৈরি --> <button>Click Me</button>
-- SQL: একটি টেবিল থেকে তথ্য বের করা SELECT name FROM users WHERE age > 18;

4. 🧱 Object Oriented Programming (OOP)

অবজেক্ট ব্যবহার করে প্রোগ্রাম ডিজাইন করা হয়, যেখানে ডেটা এবং বিহেভিয়ার একত্রে থাকে।

উদাহরণ (JavaScript):

class Person { constructor(name) { this.name = name; } greet() { console.log(`Hello, my name is ${this.name}`); } } const rahim = new Person("Rahim"); rahim.greet(); // Output: Hello, my name is Rahim

5. 🧲 Event Driven Programming (ইভেন্ট চালিত প্রোগ্রামিং)

ইভেন্টের (যেমন: ক্লিক, টাইপ) উপর ভিত্তি করে প্রোগ্রাম চালানো হয়।

উদাহরণ (JavaScript):

document.getElementById("btn").addEventListener("click", () => { alert("Button Clicked!"); });

🧱 OOP-এর ৪টি মূল ভিত্তি (Building Blocks)

1. 🧬 Inheritance (উত্তরাধিকার)

একটি ক্লাস অন্য একটি ক্লাসের বৈশিষ্ট্য (properties) ও আচরণ (methods) গ্রহণ করতে পারে।


2. 🔁 Polymorphism (বহুরূপিতা)

একই ফাংশন বা মেথড বিভিন্ন ক্লাসে বিভিন্নভাবে কাজ করতে পারে।


3. 🧊 Abstraction (নির্যাসীকরণ)

অপ্রয়োজনীয় তথ্য লুকিয়ে রেখে শুধুমাত্র দরকারি তথ্য ইউজারকে দেখানো।


4. 🔒 Encapsulation (সংবরণ)

ডেটা এবং ফাংশনকে একত্রে রেখে বাইরের অনধিকার চর্চা থেকে সুরক্ষা দেওয়া।

Last updated on