يستخدم نمط تصميم المصنع على نطاق واسع في البرمجة الموجهة للكائنات. فهو يوفر واجهة لإنشاء الكائنات، ولكنه يسمح للفئات الفرعية بتحديد الفئات التي سيتم إنشاء مثيل لها. في هذه المقالة، سوف نستكشف كيفية تنفيذ نمط المصنع في Golang، وفهم فوائده وتحليل مثال عملي للاستخدام مستوحى من مواقف الحياة اليومية.
يحدد المصنع واجهة لإنشاء الكائنات، ولكنه يفوض مسؤولية إنشاء فئة محددة إلى فئات فرعية. وهذا يعزز إنشاء الكائنات بطريقة منفصلة ومرنة، مما يسمح للكود أن يكون أكثر نمطية وأسهل في الصيانة.
دعونا نستخدم مثالا يوميا لتوضيح نمط المصنع: نظام لطلب الطعام، حيث يمكن إنشاء بعض أنواع الوجبات المختلفة (البيتزا والسلطة).
أولاً، نحتاج إلى تحديد واجهة سيتم تنفيذها بواسطة جميع "الفئات المحددة" من الوجبات.
package main type Food interface { Prepare() }
لتسهيل حياتنا أثناء التطوير وتجنب كتابة شيء خاطئ أثناء التحقق من الصحة، من الممارسات الجيدة إنشاء ENUM للحصول على الاتساق وأيضًا تسهيل الأمر إذا أردنا إضافة أطعمة جديدة في المستقبل
package main type FoodType int const ( PizzaType FoodType = iota SaladType ) type Food interface { Prepare() }
والآن دعونا ننفذ واجهة الطعام. في المثال، سنعرض فقط رسالة، وفي الحياة الواقعية، هذا هو المكان الذي سيتم فيه إنشاء الكائن الذي نعمل عليه
package main type FoodType int const ( PizzaType FoodType = iota SaladType ) type Food interface { Prepare() } type Pizza struct{} func (p Pizza) Prepare() { fmt.Println("Preparing a Pizza...") } type Salad struct{} func (s Salad) Prepare() { fmt.Println("Preparing a Salad...") }
الآن، لنقم بإنشاء المصنع الذي سيقرر أي فئة محددة سيتم إنشاء مثيل لها بناءً على التعداد الذي تلقته كمعلمة.
package main type FoodFactory struct{} func (f FoodFactory) CreateFood(ft FoodType) Food { switch ft { case PizzaType: return &Pizza{} case SaladType: return &Salad{} default: return nil } }
أخيرًا، سوف نستخدم المصنع لتصنيع طعامنا.
package main func main() { kitchen := FoodFactory{} pizza := kitchen.CreateFood(PizzaType) if pizza != nil { pizza.Prepare() } salad := kitchen.CreateFood(SaladType) if salad != nil { salad.Prepare() } }
ستكون هذه النتيجة بعد تشغيل تطبيقنا:
Preparing a Pizza... Preparing a Salad...
يعد نمط تصميم المصنع أداة قوية لتعزيز الفصل والمرونة في إنشاء الكائنات. في جولانج، يتم تنفيذ هذا النمط بشكل مباشر وفعال، مما يسمح بإنشاء أنظمة معيارية وسهلة الصيانة. باستخدام الواجهات والمصانع، يمكننا مركزية منطق الإنشاء وتبسيط تطور التعليمات البرمجية مع ظهور متطلبات جديدة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3