أنماط التصميم
Design Patterns
مفهوم
~25 دقيقة
أنماط التصميم — Design Patterns
Go ليست لغة OOP تقليدية، لكنها تملك أنماط تصميم خاصة بها نشأت من الممارسة. هذه الأنماط ستجدها في كل مشروع Go احترافي.
نمط الخيارات الوظيفية — Functional Options
هذا النمط يحل مشكلة الدوال التي تقبل إعدادات كثيرة اختيارية:
main.go
Output:
لماذا هذا النمط مميز:
- API نظيف وقابل للتوسع
- القيم الافتراضية واضحة
- إضافة خيارات جديدة لا تكسر الكود القائم
- وثائقي بذاته —
WithTLS(true)واضح
نمط Builder
main.go
Output:
حقن الاعتماديات — Dependency Injection
في Go، حقن الاعتماديات يتم ببساطة عبر الواجهات والمُنشئات:
main.go
Output:
نمط تجمّع العمال — Worker Pool
main.go
Output:
نمط الأنابيب — Pipeline Pattern
main.go
Output:
تحدي — Challenge
استخدم نمط Functional Options لإنشاء خادم مخصص