المصنع عبارة عن نمط تصميم يهدف إلى تقليل التبعيات بين الطبقات التي تعمل على توليد (إنشاء) الأشياء والأشياء نفسها ، من خلال إنشاء فئة "المصنع" التي تتعامل مع إنشاء الطبقات. من خلال القيام بذلك ، يمكننا السماح للفئات الفرعية بإعادة تعريف أي فئة لتكوينها ، وتجميع منطق الإنشاء المحتمل أن يكون معقدًا في واجهة واحدة.
يستخدم المبرمجون أنماط تصميم المصنع لأنها تسمح لهم بإنشاء حالات من الكائنات التي تقوم بتطبيق واجهة مشتركة ، دون أن يكونوا بالضرورة على علم مسبق بفئة الخرسانة الدقيقة (التطبيق) المستخدمة. ومن الحالات الشائعة التي يكون فيها ذلك مفيدًا عندما تعتمد فئة رئيسية على فصولها الفرعية لتحديد نوع الكائن الذي يجب أن يكون فوريًا. وهو مفيد أيضًا عندما يكون إنشاء كائن معقدًا ، لأنه يسمح للمبرمج بتجميع الكود في فئة واحدة وتقليل الازدواجية.
## باستخدام نمط المصنع في جافا
لاستخدام نمط تصميم المصنع ، تحتاج أولاً إلى واجهة - كائن به فئة وأسماء متغيرة ، لكن دون تعريفات. على سبيل المثال ، لدينا هنا واجهة Java للحيوانات.
`Now when we want to create a new Cat object, instead of saying something like ``` Cat cat = new Cat(); ```, we use the factory class that we have defined. For example:
`
` AnimalFactory animalFactory = new AnimalFactory();
Here we can see that the class with this instance of "Cat" doesn't really know which animal it has. But this doesn't matter - because all the classes the factory creates are concrete classes of the same interface, the parent class doesn't need to know the exact class it is using.
## Factory in Python3
We can implement a Factory easily with static methods.