تعريف نمط المنشئ: فصل بناء كائن معقد عن تمثيله ، بحيث يمكن لعملية البناء نفسها إنشاء تمثيلات مختلفة.
يتمثل نمط البناء في إنشاء كائن معقد خطوة بخطوة ، مما يتيح للمستخدمين إنشاءها فقط عن طريق تحديد نوع ومحتوى الكائنات المعقدة. لا يعرف المستخدمون تفاصيل البناء الداخلية المحددة. يشبه وضع البناء وضع المصنع التجريدي.
لماذا تستخدم وضع البناء
هو فصل عملية بناء كائنات معقدة من مكوناتها. ملاحظة: إنها عملية الفصل والمكونات.
نظرًا لأن كائنًا معقدًا لا يحتوي على العديد من الكميات الكبيرة من المكونات ، مثل السيارات ، فهناك العديد من الأجزاء: العجلات ، وعجلة القيادة ، والمحرك ، والأجزاء الصغيرة المختلفة ، وما إلى ذلك لتجميع هذه الأجزاء في سيارة للسيارات ، تكون عملية التجميع هذه معقدة للغاية (تتطلب تقنية تجميع جيدة) ، ونموذج البناء هو فصل المكونات وعملية التجميع.
كيفية استخدام وضع البناء
أولاً ، لنفترض أن كائنًا معقدًا يتكون من مكونات متعددة.
أولاً ، هناك حاجة إلى واجهة تحدد كيفية إنشاء مكونات مختلفة من الكائنات المعقدة:
نسخة الكود كما يلي:
باني الواجهة العامة {
// إنشاء مكون A ، على سبيل المثال ، إنشاء عجلات سيارة
void buildparta () ؛
// إنشاء المكون B ، مثل إنشاء عجلة قيادة سيارة
void buildpartb () ؛
// إنشاء مكون C ، مثل إنشاء محرك سيارة
void buildpartc () ؛
// إرجاع نتيجة التجميع النهائية (العودة إلى آخر سيارة تم تجميعها)
// لم يتم تنفيذ عملية تجميع المنتج النهائي هنا ، ولكن يتم نقلها إلى فئة المدير أدناه.
// سيدرك هذا عملية فك الارتباط والمكونات
المنتج getResult () ؛
}
استخدم المدير لإنشاء كائن معقد آخر ، وتغلف واجهة البناء أعلاه كيفية إنشاء مكونات (تتكون الكائنات المعقدة من هذه المكونات) ، أي كيف أن محتوى المخرج هو كيفية تجميع المكونات أخيرًا في المنتجات النهائية:
نسخة الكود كما يلي:
مدير الطبقة العامة {
باني باني خاص.
المدير العام (باني باني) {
this.builder = builder ؛
}
// أخيرًا ، يتم استخدام parta partb partc لتشكيل كائن معقد
// هذه هي عملية تجميع عجلة القيادة والمحرك في سيارة
بنية باطلة عامة () {
builder.buildparta () ؛
builder.buildpartb () ؛
builder.buildpartc () ؛
}
}
التنفيذ المحدد لـ Builder ConcreteBuilder:
1. بناء أو تجميع مكونات المنتج عن طريق إكمال منشئ الواجهة ؛
2. حدد وتوضيح الأشياء المحددة التي تريد إنشاؤها ؛
3. توفير واجهة يمكن أن تعيد تكوين المنتج.
نسخة الكود كما يلي:
الطبقة العامة ConcreteBuilder تنفذ Builder {
جزء parta ، partb ، partc ؛
public void buildparta () {
// هنا هو رمز محدد لكيفية بناء parta
} ؛
public void buildpartb () {
// هنا هو الكود المحدد لكيفية بناء PIRTB
} ؛
void buildpartc () {
// هنا هو رمز محدد لكيفية بناء PIRTB
} ؛
المنتج العام getResult () {
// العودة إلى نتيجة التجميع النهائية
} ؛
}
كائن معقد: المنتج:
نسخة الكود كما يلي:
منتج الواجهة العامة {}
مكونات الأشياء المعقدة:
نسخة الكود كما يلي:
جزء الواجهة العامة {}
دعونا نرى كيفية الاتصال بوضع البناء:
نسخة الكود كما يلي:
Builder ConcreteBuilder = New ConcreteBuilder () ؛
مدير المدير = مدير جديد (باني) ؛
Director.construct () ؛
منتج المنتج = builder.getResult () ؛
تطبيق وضع البناء
في استخدام Java الفعلي ، غالبًا ما نستخدم مفهوم "تجمع".
"تجمع" هو في الواقع قطعة من الذاكرة. سيتم تحسين استخدام الذاكرة. قم بتعديل فئة المخرج في وضع البناء لتشخيص المكون الذي يتم كسره "الطرف المكسور" ، ثم إصلاح هذا المكون.