وضع وضع البناء
1. فصل بناء كائن معقد عن تمثيله بحيث يمكن لعملية الإنشاء نفسها أن يكون لها تمثيلات مختلفة. وهذا ما يسمى نمط البناء.
2. الوصف في اللغة الموجهة للكائنات ، الأدوار الرئيسية:
1>. تعرّف فئة Builder Interface Builder [العامل] ، وهي طريقة موحدة للسلوك ، والتي تمثل كائنًا هيكليًا معقدًا ؛
2>. يتم استخدام ConcreteBuilder لإنشاء كائنات مثيل لأشكال مختلفة من الباني لتمثيل تمثيلات مختلفة للبناء ؛
3>. يتم استخدام المخرج هذا القائد لتوجيه عملية التنفيذ وشكل مثيل المنشئ ، والذي يتم استخدامه للانفصال عن أداء مثيل المنشئ ، ويستخدم لتوجيه مثيل البناء لإنشاء وإنشاء نتائج المنتج في طلب قاعدة معين ؛
4>. ستؤدي النتائج التي أنشأتها ResultObject إلى إنشاء كائن نتيجة ؛ هذه هي النتيجة التي أنشأها المبدع المحدد بناءً على إرشادات المخرج ؛
3. نموذج البناء هو في الواقع قائد ، منشئ ، وعميل يستخدم القائد للاتصال بباني معين للعمل ويمكنه استخلاص نتائج من البناء المحدد ؛
4. وضع البناء ، السيناريو المحاكاة: [انظر مثال جيد يوضح وصف وضع البناء]
يقال إن أحد أفراد الأسرة يريد بناء منزل ، لكن مالك المنزل أو الأشخاص الآخرين في الأسرة لا يعرف كيفية بناء منزل ، لذلك يتعين عليه توظيف عدد قليل من العمال. يجب أن يكون لدى فريق مبنى المنزل رجلًا لبناء منزل وفقًا لأفكار المالك. يقوم فورمان بتصميم ويتطلب من العمال أن يفعلوا ما يفعلونه وفقًا لمتطلبات المالك ؛
قال فورمان إن الخطوة الأولى هي بناء الهيكل العظمي بالكامل للمنزل ، والخطوة الثانية هي بناء غرفة النوم ، والخطوة الثالثة هي تزيين المطبخ ، والخطوة الرابعة هي بناء غرفة المعيشة ، والخطوة الخامسة هي ...
لا يفعل Foreman أي شيء ، ولكن يجب على المنشئ المحدد القيام بذلك وفقًا لمتطلبات فورمان. يتم بناء الخطوات الأولى والثانية حتى يكتمل المنزل بأكمله ؛
يجب أن يكون لدى المبدع جميع المهارات اللازمة لإنشاء هذا المنزل ، وهي بناء هياكل عظمية ، وتزيين غرفة النوم ، وما إلى ذلك ، ما يفعله المنشئ ، أو لديه قدرات ، يجب أن يكون أكبر من أو يساوي ما يحتاجه القائد ، أو يتمتع بقدرات ؛
وهذا هو ، القائد هو منظم ، والباني يوفر المهارات ؛
5. بلغة ضعيفة مثل JavaScript ، إذا لم يكن هناك شيء مثل الواجهة ، فتجاهل طبقة تعريف الواجهة ، وإنشاء منشئ معين مباشرة ، ثم قم بإنشاء فئة إرشادية للاتصال ذهابًا وإيابًا ؛
رمز مصدر مثيل
1. العمال باني X:
نسخة الكود كما يلي:
وظيفة WorkerBuilder () {
this.workone = function () {
// بناء هيكل عظمي
}
this.worktwo = function () {
// بناء غرفة نوم
}
this.workthree = function () {
// بناء مطبخ
}
this.workfour = function () {
// بناء غرفة معيشة
}
// ...
this.getResult = function () {
// بناء منزل
var house = new House () ؛
//house.houseframe ...
عودة المنزل
}
}
Workbuilder هو منشئ محدد ، WorkOne ، اثنان هو ما يجب القيام به ، وبناء الهياكل العظمية ، وما إلى ذلك ؛
بطبيعة الحال ، يمكن بناء بناء العمل عدة مرات أخرى للإشارة إلى أن العمال يقومون بطرق مختلفة لكل وظيفة ؛ لكن محتوى العمل هو نفسه ؛
2. فئة القائد
نسخة الكود كما يلي:
District Director () {
this.construct = function (builder) {
builder.workone () ؛
builder.worktwo () ؛
builder.workthree () ؛
builder.workfour () ؛
// ...
// يمكن تعيين المحتوى أعلاه بالتسلسل ، ويمكن أيضًا تعيين عناصر العمل.
}
}
تتضمن طريقة التوجيه بموجب فئة Commander إشارات رد الاتصال إلى المنشئ ، بما في ذلك العديد من أو كل محتوى عمل المنشئ ؛ القائد ينظم وترتيب ما يحتاج عمال البناء إلى فعله ؛
3. بيت المنتج
نسخة الكود كما يلي:
وظيفة House () {
this.houseframe = '' ؛
this.room = '' ؛
this.kitchen = '' ؛
this.livingroom = '' ؛
// ...
}
4. كيفية الاستخدام
نسخة الكود كما يلي:
var builder = new Workbuilder () ؛
var director = new Director () ؛
Director.construct (Builder) ؛
var house = builder.getResult () ؛
الخطوة الرابعة هي أن الاستخدام بأكمله يعادل العميل: صاحب المنزل. يطلب المالك من المخرج فورمان لبناء المنزل ، لكن فورمان لا يفعل أي شيء ، لذلك يوجه عامل البناء لبناء الطفل ، وأخيراً يحصل المالك على المنزل المبني من العامل ؛
تعليمات أخرى
يعد نموذج البناء أكثر ملاءمة يكون المحتوى [الملخص] معقدًا ، والمشاهد الفعلية مختلفة ، مثل الموقف الذي يكون فيه محتوى العمل أو الطلب غير متسق ؛ على سبيل المثال ، عملية الحياة اليومية لكل شخص ، ومشاهد مماثلة للأمثلة المذكورة أعلاه ؛ من خلال طبقة المدرب ، من الممكن تقليل البيئة التي يكون فيها العديد من أماكن العمل المماثلة ولكن ترتيب قواعد العمل غير متسق ؛ يمكن أن يقلل بشكل كبير من تجريد البناء للكائنات الفعلية ؛