ملخص
نمط التصميم هو فن. إذا فهمت هذا الفن حقًا ، فستجد أن العالم سيصبح أكثر جمالا.
تعريف
تحديد واجهة لإنشاء كائن ، دع الفئة الفرعية لها تقرر الفئة التي يجب إنشاء مثيل لها
استخدم السيناريوهات
في أي مكان تستخدمه كائنات معقدة ، يمكنك استخدام وضع المصنع
UML
1. مصنع مجردة
المصنع الملخص: نعلم جميعًا أن المصانع لديها عمومًا وظيفة واحدة فقط ، أي الإنتاج ، على سبيل المثال ، مصنع سيارات Geely ، أي سيارات Geely ، وصنع الهاتف المحمول iPhone ، وما إلى ذلك. بحيث يمكن تلخيصها بطريقة بسيطة ، أي إنشاء () ؛
2. مصانع تصنيع السيارات المحددة
مصنع تصنيع السيارات المحدد: يدرك مصنعًا مجردًا ، مع عمليات وطرق فعلية لتصنيع السيارات ، إلخ.
3. السيارة التجريدية
السيارات المجردة: نعلم عمومًا أن السيارات يمكنها تشغيل وتشغيل الموسيقى والتنقل والتشغيل هي ميزات شائعة للسيارات.
4. سيارات محددة
سيارة مجردة: السيارات الخرسانية تدرك سيارة مجردة ولديها جميع وظائفها. بالطبع ، قد يكون للسيارات المختلفة وظائف مختلفة.
المقدمة الموجزة أعلاه هي في الأساس أن مصانع السيارات المحددة تصنع السيارات المقابلة ، مثل مصانع Audi ، ومصانع فولكس واجن ، وسيارات فولكس واجن ، إلخ.
رمز العرض التوضيحي
لقد فهمنا بوضوح العلاقة بينهما أعلاه ، لذلك سنستخدم الكود لإظهار أفكارنا ومنطقنا أعلاه في الكود:
(1) مصنع السيارات التجريدي
package com.zengtao.demo.factory ؛/*** مجردة المصنع*/الفئة المجردة العامة carfactory {public agrush <t يمتد car> t createCar (class <t> cla) ؛}(2) مصنع سيارات محدد
Package com.zengtao.demo.factory ؛/*** Audi Factory*/الفئة العامة الصوتية يمتد carfactory {suppressWarnings ("Unchecked") Override public <t يمتد Car> t createCar (class <t> cla) {car car = null ؛ حاول {car = (Car) class.forname (cla.getName ()). newInstance () ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ } العودة (t) السيارة ؛ }}(3) تحديد سيارة مجردة
Package com.zengtao.demo.factory ؛ Public Abstract Class Car {public Abstract void drive () ؛ التجريد الجمهور باطل ذاتي () ؛ playmusic التجريدي التجريدي العام () ؛}(4) سيارة محددة
(Audi Q3)
Package com.zengtao.demo.factory ؛ الطبقة العامة AudiQ3Car يمتد Audicar {Override public void drive () {system.out.println ("تم تصنيع AudiQ3Car بنجاح") ؛ System.out.println ("AudiQ3Car Drive") ؛ } Override public void selfnagive () {system.out.println ("AudiQ3Car Selfnagive") ؛ } Override public void playmusic () {system.out.println ("AudiQ3Car Selfnagive") ؛ } Override public void playmusic () {system.out.println ("AudiQ3Car PlayMusic") ؛ System.out.println ("") ؛ }}(Audi Q5)
Package com.zengtao.demo.factory ؛ الطبقة العامة AudiQ5Car يمتد Audicar {Override public void drive () {system.out.println ("تم تصنيع AudiQ5Car بنجاح") ؛ System.out.println ("AudiQ5Car Drive") ؛ } Override public void selfnagive () {system.out.println ("AudiQ5Car Selfnagive") ؛ } Override public void playmusic () {system.out.println ("AudiQ5Car Selfnagive") ؛ } Override public void playmusic () {system.out.println ("AudiQ5Car PlayMusic") ؛ System.out.println ("") ؛ }}(5) استدعاء
package com.zengtao.demo ؛ import com.zengtao.demo.factory.audifactory السمكية () ؛ // استخدم المصنع لجعل Q3 Car AudiQ3Car AudiQ3Car = AudioFactory.createCar (AudiQ3Car.Class) ؛ // استخدم المصنع لجعل Q5 Car AudiQ5Car AudiQ5Car = AudiFactory.createCar (AudiQ5Car.Class) ؛ // ابدأ القيادة وتشغيل Music AudiQ3Car.drive () ؛ Audiq3car.playmusic () ؛ Audiq5car.drive () ؛ Audiq5car.playmusic () ؛ }}
(6) النتائج
بالنسبة إلى ما سبق ، يتم استخدام طريقة المصنع لتحقيق العملية البسيطة لتصنيع السيارة.
النقطة الأولى:
في المصنع التجريدي ، نرى أن طريقة CreateCar (Class CLA) ، لماذا نحددها مثل هذا؟ استخدم الانعكاس لإنشاء سيارة معينة. وبهذه الطريقة ، تحتاج أنواعنا المختلفة من السيارات فقط إلى الظروف المقابلة ، هل يمكن إنتاجها؟ لذلك من المفيد الكتابة بهذه الطريقة ، تمامًا مثل الكثيرين ، لدى Audi Q3 و Q5 و A4 و A6 و A7 و A8 وغيرها من السلسلة.
النقطة الثانية:
إذا كان لدينا سيارات أخرى ، مثل BMW ، التي لديها أيضًا BMW X1 ، 320 ، X5 ، وما إلى ذلك ، فيمكننا أيضًا تنفيذها بكل بساطة ، فقط تنفيذ المصنع التجريدي ، ثم تنفيذ السيارة المجردة في السيارة المحددة ، كما أن التوسع مناسب للغاية.
لخص
لقد حان الوقت تقريبًا للخروج من المصنع التجريدي هنا. نموذج طريقة المصنع هو نموذج تصميم بسيط نسبيًا وجيدًا.
ولكن هناك أيضًا عيوب ، مثل: إذا كان هناك أنواع جديدة وأنواع أخرى من السيارات ، فأنت بحاجة فقط إلى تنفيذ المصانع التجريدية والسيارات المجردة ، ثم إنشاء فئتين جديدتين
ولكن إذا لم تكن سيارة ، ولكن الهاتف المحمول ، فعليك أن تكتب كل شيء ، مما سيؤدي إلى ظهور الكثير من الفئات ، سواء كنت تعتمد نموذج طريقة المصنع أو يقرر بناءً على الاحتياجات.
ملاحظة: لا تطبق أنماط التصميم من أجل التصميم. بطبيعة الحال ، يتم استخدام أنماط طريقة المصنع أيضًا ، مثل: طريقة oncreate النشاط ، نقوم أيضًا بتحميل وإنشاء واجهات مماثلة بناءً على تخطيط XML الذي نحدده ، إلخ ، إلخ.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.