الگو اسمِ مشترک برای «راهحلِ تکراریِ یک دردِ تکراری» است — نه مدال افتخار. در پایتون خیلی از الگوهای کلاسیکِ جاوا با یک تابع یا دیکشنری حل میشوند:
- Strategy → دیکشنریِ نام → تابع (درس بازآرایی).
- Observer → لیستِ callback و متد
subscribe. - Facade → یک تابعِ ساده روی زیرسیستمِ پیچیده.
- MVC → همان انضباط «منطق جدا از نما» که در GUI دیدی.
- Singleton → تقریباً همیشه نه؛ بهجایش نمونهٔ ماژولسطح یا تزریق وابستگی. حالتِ سراسریِ پنهان، تست را جهنم میکند.
# Facade: یک ورودی ساده روی سه قدمِ پیچیده
def publish(article):
rendered = render_markdown(article.body)
indexed = index_for_search(article.id, rendered)
notify_subscribers(article.author, article.id)
return indexed
ملاک آوردن الگو: دردِ واقعی و تکراری (سومین بار که در یک محور تغییر کردی). قبلش سادهترین کدِ خوانا.
اشتباه رایج
معمارِ خوب در هر پروژه از چند الگو استفاده میکند.
تصحیح
معمارِ خوب الگوها را میشناسد و تا درد نباشد به کارشان نمیبرد. الگویِ بدونِ درد، پیچیدگیِ بدونِ سود است.