পাইথন চালানো

উৎস :
cd mon_projet

python -m venv mon_venv

source mon_venv/bin/activate

# Sur windows
mon_venv\Scripts\activate

deactivate

ইন্সটলের প্রয়োজন

pip install -r requirements.txt

GoF ডিজাইন প্যাটার্নস পাইথনে

GoF ডিজাইন প্যাটার্নগুলো ২৩টি ডিজাইন প্যাটার্নের একটি সেট, যা "Design Patterns: Elements of Reusable Object-Oriented Software" বইতে বর্ণনা করা হয়েছে।

Table 1. এখানে GoF ডিজাইন প্যাটার্নের একটি তালিকা দেওয়া হয়েছে

নাম

বিবরণ

कारखाना पद्धতি

ঠিক ক্লাস নির্দিষ্ট না করে, অবজেক্ট তৈরি করো

অবস্ট্র্যাক্ট ফ্যাক্টরি

বাস্তব ক্লাসকে উল্লেখ না করে সংশ্লিষ্ট বা নির্ভরশীল অবজেক্টের পরিবার তৈরি করুন।

বিল্ডার

জটিল বস্তুর নির্মাণকে তার উপস্থাপনায় পৃথক করুন যাতে একই নির্মাণ প্রক্রিয়া ভিন্ন-ভিন্ন উপস্থাপনা তৈরি করতে পারে।

প্রোটোটাইপ

একটি বিদ্যমান প্রোটোটাইপ কপি করে নতুন বস্তু তৈরি করে।

একক

একটি ক্লাসের ইন্সট্যান্সিয়েশনকে একমাত্র বস্তুতে সীমাবদ্ধ করে।

অ্যাডাপ্টার

একটি ক্লাসের ইন্টারফেসকে অন্য একটি ইন্টারফেসে রূপান্তর করে যা ক্লায়েন্ট প্রত্যাশা করে

ব্রিজ

একটি abstractionsকে এর বাস্তবায়ন থেকে বিচ্ছিন্ন করুন যাতে উভয়টি স্বাধীনভাবে পরিবর্তিত হতে পারে।

কম্পোজিট

অবজেক্ট গুলোকে গাছের গঠনে গঠন করে অংশ-বিশেষের হিরারকি উপস্থাপন করুন।

ডেকোরেটর

গতিশীলভাবে একটি বস্তুকে অতিরিক্ত দায়িত্ব সংযুক্ত করুন।

প্রশস্ত

একটি সাবসিস্টেমে ইন্টারফেসের একটি সেটকে একীভূত ইন্টারফেস প্রদান করে।

হালকা ওজনের

হালকা বস্তু তৈরি ও ব্যবহারে খরচ কমায়।

প্রক্সি

একটি অন্য বস্তুর জন্য একটি প্রতিস্থাপন বা স্থান ধরন প্রদান করে, যাতে তার অ্যাক্সেস নিয়ন্ত্রণ করা যায়।

দায়িত্বের শৃंखলা

একাধিক অবজেক্টকে একটি অনুরোধ পরিচালনায় অনুমতি দেয়।

আদেশ

একটি অনুরোধকে একটি অবজেক্টে এনক্যাপসুলেট করে, যা আপনাকে বিভিন্ন অনুরোধ, কিউ বা লগের সাথে ক্লায়েন্টকে প্যারামিটারাইজ করতে দেয় এবং অনুত্থাপনযোগ্য অপারেশন সমর্থন করে।

অনুবাদক

একটি ভাষার ব্যাকরণের একটি উপস্থাপনা প্রদান কর এবং সেই উপস্থাপনাটি ব্যবহার করে সেই ভাষার বাক্যাগুলি ব্যাখ্যা কর।

ইটেরেটর

একটি সংগঠিত অবজেক্টের উপাদানগুলোকে ক্রমানুসারে অনুসরণ করার উপায় প্রদান করে, কোনো অন্তর্নিহিত উপস্থাপন প্রকাশ না করে।

Mediator

এটি অবজেক্ট জটিল নির্ভরতা কমাতে সাহায্য করে, কারণ এটি অবজেক্টগুলোকে শুধুমাত্র একটি মিডিয়েটর অবজেক্টের মাধ্যমে যোগাযোগ করতে বাধ্য করে।

স্মৃতিচিহ্ন

একটি বস্তুকে এর পূর্বের অবস্থায় পুনঃস্থাপন করার ক্ষমতা প্রদান করে (এনক্যapsulation ভাঙা না করে).

অवलোকক

একটি এক‑এর‑বহু নির্ভরতা সংজ্ঞায়িত করে object‑গুলোকে, যাতে যখন কোনো object‑এর state পরিবর্তিত হয়, তাহলে তার সব নির্ভরতাকে স্বয়ংক্রিয়ভাবে বিজ্ঞপ্তি দেওয়া হয় এবং আপডেট করা হয়।

স্টেট

একটি বস্তুকে তার আंतरিক অবস্থা পরিবর্তিত হওয়ার সময় তার আচরণ পরিবর্তিত করার অনুমতি দেয়।

রণনীতি

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

টেমপ্লেট পদ্ধতি

একটি পদ্ধতিতে একটি অ্যালগরিদমের কাঠামো নির্ধারণ করে, কিছু ধাপকে উপশ্রেণীগুলিতে委譲 করা হয়।

দর্শক

এটি একটি অবজেক্টের স্ট্রাকচারে একটি নতুন অপারেশন নির্ধারণ করতে দেয়, সেই অবজেক্টদের শ্রেণি পরিবর্তন না করে।

ফাংশনাল প্রোগ্রামিং

লাইব্রেরি

URL

বর্ণনা

PyMonad

https://github.com/jasondelaat/pymonad

PyMonad হল Python-এ মোনাডিক ডেটা স্ট্রাকচারের একটি বাস্তবায়ন যা Haskell এবং F# মতো প্রোগ্রামিং ভাষাগুলোর উপর ভিত্তি করে গঠিত এবং ফাংশনাল প্রোগ্রামিংয়ে সর্বাধিক ব্যবহৃত মোনাডের ধরনের জন্য বাস্তবায়ন অন্তর্ভুক্ত করে।https://www.miguelfarrajota.com/2021/06/monads-in-python-with-pymonad/[আর্টিকেল]

PyFunctional

https://github.com/EntilZha/PyFunctional/

PyFunctional একটি Python লাইব্রেরি যা ফাংশনাল প্রোগ্রামিংয়ের জন্য সরবরাহ করে এবং শুধুমাত্র ফাংশন ও ইটারেবলের সাথে কাজ করার জন্য সরঞ্জাম প্রদান করে।

Toolz

https://toolz.readthedocs.io/en/latest/

Toolz একটি পাইথন লাইব্রেরি যা ফাংশনাল প্রোগ্রামিংয়ের জন্য ডিজাইন করা হয়েছে এবং শुद्ध ফাংশন এবং Iterable নিয়ে কাজ করার জন্য সরঞ্জাম প্রদান করে।

Fn.py

https://github.com/kachayev/fn.py

Fn.py` একটি পাইথন লাইব্রেরি ফাংশনাল প্রোগ্রামিংয়ের জন্য যা শুদ্ধ ফাংশন ও iterable নিয়ে কাজ করার জন্য সরঞ্জাম দেয়।

নারিকেল

https://coconut-lang.org/

Coconut Python-কে ফাংশনাল প্রোগ্রামিংয়ের জন্য কয়েকটি বৈশিষ্ট্য যোগ করে, যার মধ্যে প্যাটার্ন ম্যাচিংও অন্তর্ভুক্ত।https://stackoverflow.com/questions/11909681/are-there-pattern-matching-functions-in-python-like-this[বাতচিত sof]

প্রতিকূল ফল

লুপ

# impérative way
result = []
for i in inputs:
    x = f(g(i))
    result.append(x)

# idiomatic way
result = map(comp(f,g), inputs)

Articles connexes