بناء نظم البلوجين الموحّدة مع دورية مصنع المعادن في بايتون
ومن الضروري إنشاء نظم متجانسة من أجل بناء برامجيات مرنة وقابلة للاستمرار، وفي بيتون، يوفر نمط المصانع الخلاصية وسيلة قوية لتصميم هذه النظم، مما يمكّن المطورين من إنشاء أسر ذات أغراض ذات صلة دون تحديد فصولهم المحددة.
فهم نمط المصانع الاستخراجية
إن نمط المصانع الخلاصية هو نمط تصميمي خلقي يوفر واجهة لخلق أسر ذات صلة أو تابعة لها، ويتيح إمكانية تبادل الأسر ذات الوجهات، مما يجعل النظم أكثر قابلية للتكيف مع التغيير.
تنفيذ خطة (باترن) في (بيتون)
وفي بايتون، يشمل تنفيذ مصنع الخلاص تحديد وصلات بينية مختصرة للمنتجات والمصانع، ثم إنشاء فصول محددة لتنفيذ هذه الوصلات البينية، وهذا النهج يعزز الانقلابات غير المستقرة ويعزز القدرة على التصعيد.
تحديد المقاطعات
ابدأ بتحديد حصص الخلاص أو الواجهات لمنتجاتك ومصانعك وحدة (بيتون) تساعد على إنفاذ هذه الوصلات
from abc import ABC, abstractmethod
class Button(ABC):
@abstractmethod
def render(self):
pass
class Checkbox(ABC):
@abstractmethod
def render(self):
pass
class GUIFactory(ABC):
@abstractmethod
def create_button(self):
pass
@abstractmethod
def create_checkbox(self):
pass
إنشاء عوامل ومنتجات ملموسة
ثم تنفيذ دروس محددة لكل أسرة ومصنع من المنتجات، مثلا، يمكن أن تكون مواضيع ويندو وماك أسرا منتجة مختلفة.
class WindowsButton(Button):
def render(self):
print("Render a Windows style button.")
class WindowsCheckbox(Checkbox):
def render(self):
print("Render a Windows style checkbox.")
class WindowsFactory(GUIFactory):
def create_button(self):
return WindowsButton()
def create_checkbox(self):
return WindowsCheckbox()
class MacButton(Button):
def render(self):
print("Render a Mac style button.")
class MacCheckbox(Checkbox):
def render(self):
print("Render a Mac style checkbox.")
class MacFactory(GUIFactory):
def create_button(self):
return MacButton()
def create_checkbox(self):
return MacCheckbox()
استخدام مصنع الخلاص
(ج) استخدام النمط، وتسريع المصنع المرغوب فيه، وخلق أجسام المنتجات من خلال أساليب المصنع، وهذا النهج يسمح بتبادل المواضيع أو الأسر بسهولة.
def initialize_gui(factory: GUIFactory):
button = factory.create_button()
checkbox = factory.create_checkbox()
button.render()
checkbox.render()
# Usage
import sys
if sys.platform == "win32":
factory = WindowsFactory()
else:
factory = MacFactory()
initialize_gui(factory)
وباتباع هذا النمط، يمكن لنظامك المزدحم أن يدعم بشكل دينامي مختلف مواضيع جامعة الدول المستقلة أو يعترض الأسر، مما يجعلها ذات طابع نمطي ويمكن تكييفها.