Skip to content

Commit

Permalink
Merge pull request #308 from ArefTurkmenia/designPatternsIntroducePart
Browse files Browse the repository at this point in the history
UPDATE: complete introduction of design patterns in 9._index.md
  • Loading branch information
Ja7ad authored Sep 16, 2023
2 parents e0a7b41 + 9c3c81d commit 7cbdc91
Showing 1 changed file with 21 additions and 3 deletions.
24 changes: 21 additions & 3 deletions content/chapter 9/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,26 @@ weight: 17000
bookCollapseSection: true
---

در این فصل به مباحث الگوهای طراحی در زبان گو میپردازیم و سعی می کنیم بطور کلی و با مثال های مناسب به شما هر الگو را آموزش دهیم و همچنین برخی از کاربردهای الگوها را نام ببریم.
در این فصل، به مباحث الگوهای طراحی در زبان گو می‌پردازیم و سعی می‌کنیم به طور کلی و با مثال‌های مناسب، هر الگو را به شما آموزش دهیم و همچنین برخی از کاربردهای الگوها را نام ببریم.

## الگوی طراحی چیست؟

{{< tooltip text="الگوهای طراحی" note="Design patterns" >}}، به عنوان راه‌حل‌های معمول برای مسائلی که در طراحی نرم‌افزار به طور متداول رخ می‌دهند، استفاده می‌شوند. آنها دستورالعمل‌هایی پیش‌فرض هستند که می‌توانید برای حل یک مسئله تکراری در کد خود استفاده کنید.

## چرا باید الگوهای طراحی را یاد بگیریم؟

الگوهای طراحی، به شما کدهای برنامه برای حل یک مسئله ارائه نمی‌دهند. بلکه، آنها یک مفهوم کلی را برای حل یک مسئله در اختیار شما قرار می‌دهند و بر عهده شماست که این مفهوم را چگونه در برنامه خود پیاده‌سازی کنید.

الگوهای طراحی، یک زبان مشترک را تعریف می‌کنند تا شما بتوانید با سایر توسعه‌دهندگان به طور موثرتری ارتباط برقرار کنید. به عنوان مثال، می‌توانید به هم‌تیمی خود بگویید: "می‌توانی این مسئله را با استفاده از الگوی {{< tooltip text="سینگلتون" note="Singleton" >}} حل کنی." و او همه ایده‌های پشت این الگو را درک خواهد کرد، بدون اینکه نیاز به توضیح اضافی داشته باشید.

{{< hint info >}}
سعی کنید وقتی از الگوهای طراحی استفاده کنید که واقعا احساس نیاز کنید, خیلی قابل اهمیته که در جای درست از الگوها استفاده کنید.
{{< /hint >}}
بسیار مهم است، از الگوهای طراحی زمانی استفاده کنید که واقعاً نیاز دارید. این امر دقت و درک دقیق از مسئله و نیازهای طراحی شما را می‌طلبد. این موضوع کمک می‌کند تا شما کد {{< tooltip text="قابل نگهداری" note="Maintainability" >}}، {{< tooltip text="قابل توسعه" note="Scalable" >}} و {{< tooltip text="خوانا" note="Readable" >}} توسعه دهید و همچنین از تجربه و دانش جمعی الگوها بهره‌برداری کنید. در نتیجه، درست استفاده کردن از الگوهای طراحی می‌تواند بهبود قابل توجهی در کیفیت و عملکرد برنامه شما ایجاد کند.
{{< /hint >}}

## طبقه‌بندی الگوهای طراحی

الگوهای طراحی با توجه به پیچیدگی، سطح جزئیات و مقیاس کاربرد در برنامه، متفاوت هستند.

- **الگوهای طراحی {{< tooltip text="سازنده" note="Creational" >}}** مکانیزم‌های ایجاد شیء را ارائه می‌دهند که {{< tooltip text="انعطاف‌پذیری" note="Flexibility" >}} و {{< tooltip text="استفاده مجدد" note="Reusability" >}} از کد موجود را افزایش می‌دهند.
- **الگوهای طراحی {{< tooltip text="ساختاری" note="Structural" >}}** چگونگی ترکیب اشیاء و کلاس‌ها را به ساختارهای بزرگتر توضیح می‌دهد، در حالی که این ساختارها انعطاف‌پذیری و کارآمدی خود را حفظ می‌کنند.
- **الگوهای طراحی {{< tooltip text="رفتاری" note="Behavioral" >}}** مراقبت از ارتباطات مؤثر و تخصیص مسئولیت‌ها بین اشیاء را بر عهده دارند.

0 comments on commit 7cbdc91

Please sign in to comment.