Latest web development tutorials

نمط مصنع مجردة

يتم إنشاء مجردة مصنع (الملخص مصنع نمط) حول سوبر مصنع غيرها من النباتات. ومن المعروف أن النباتات أيضا باسم سوبر مصنع مصانع أخرى. هذا النوع من أنماط التصميم تنتمي إنشاء مخطط، الذي يوفر أفضل وسيلة لخلق الكائنات.

في نمط مصنع مجردة، واجهة هي المسؤولة عن خلق المتعلقة مصنع الأشياء، دون أن يحدد صراحة صفوفهم. كل لدت الكائن، وفقا للمصنع يمكن أن توفر نموذج المصنع.

مقدمة

النية: لخلق سلسلة من واجهة الأجسام ذات الصلة أو المعتمدة عليها، دون تحديد فئات محددة الخاصة بهم.

أساسا لحل: المشكلة الرئيسية للخيارات واجهة.

متى تستخدم: منتجات نظام لها الأسرة أكثر من منتج واحد، والنظام الوحيد الذي عائلة من المنتجات الاستهلاكية.

كيفية إصلاح: في عائلة المنتجات داخل وتحديد المنتجات متعددة.

رمز مفتاح: الكلية متعددة منتجات مماثلة في المصنع.

أمثلة التطبيق: العمل، من أجل المشاركة في بعض الاجتماعات، يجب أن يكون هناك اثنين أو أكثر من مجموعات من الملابس ذلك، مثلا، ملابس العمل (مجموعات كاملة، سلسلة من المنتجات المحددة)، اللباس المناسب (مجموعات كاملة، سلسلة من المنتجات المحددة)، حتى بالنسبة للعائلة قد يكون لديك سيدات الأعمال، ورجال الأعمال، على الموضة للنساء، أزياء للرجال، بل هي أيضا مجموعات كاملة، وهي سلسلة من منتجات محددة.لنفترض أن الوضع (في الواقع لا وجود لها، أو آخر، وليس الشيوعية، ولكن لصالح مصنع مجردة وصف نمط)، في منزلك، وخزانة واحدة (مصنع الخرسانة) يمكن تخزين فقط مثل واحد الملابس (مجموعات كاملة، سلسلة من منتج معين)، في كل مرة كنت تأخذ هذه المجموعة من الملابس من خزانة تؤخذ بشكل طبيعي. مع OO التفكير لفهم، كل خزانة (الخرسانة) وخزائن فئة (مصنع مجردة) واحد، ولكل مجموعة واحدة من الملابس وبما في ذلك سترة محددة (منتج معين)، والسراويل (محددة المنتج)، وهذه هي في الواقع قميص محدد سترة (منتجات مجردة)، والسراويل محددة والسراويل (المنتج مجردة آخر).

الايجابيات: عندما يتم تصميم عائلة منتجات أكثر من كائنات العمل معا، يمكننا أن نضمن أن العميل دائما استخدام فقط الكائنات نفسها عائلة منتجات.

العيوب: عائلة منتجات الموسعة هي صعبة للغاية، لزيادة مجموعة من المنتجات، سواء في الخالق مجردة كود ريغا، ولكن أيضا لإضافة رمز معين في الداخل.

سيناريوهات الاستخدام: 1، QQ للبشرة، مجموعة من التغيير معا.2، توليد مختلف إجراءات نظام التشغيل.

ملاحظة: عائلة منتجات طويلة صعبة وسهلة لتوسيع مستوى المنتج.

تحقيق

سوف نقوم بإنشاءالشكلواللون واجهة واجهة تطبيق فئة من هذه الكيانات. والخطوة التالية هي لخلقAbstractFactoryالطبقة مصنعمجردة.ثم تحديدShapeFactoryالطبقة مصنعوColorFactory،هذه الفئات هما مصنع توسيعAbstractFactory.ثم إنشاء فئةFactoryProducerمصنع الخالق /البناء.

AbstractFactoryPatternDemo، والطبقاتمظاهرة لدينا باستخدامFactoryProducerللحصول على وجوهAbstractFactory.ويمر تشكيلالشكلالمعلومات(CIRCLE / المستطيل / مربع)لAbstractFactory، فإنه يحتاج إلى الحصول على نوع الكائن. ويمر أيضا معلومات اللوناللون(أحمر / أخضر / أزرق)لAbstractFactory،فإنه يحتاج إلى الحصول على نوع الكائن.

مجردة نمط مصنع UML الرسم البياني

خطوة 1

واجهة لخلق شكل.

Shape.java

الواجهة العمومية الشكل {
   تعادل باطل ()؛
}

خطوة 2

إنشاء فئة الجهة التي تطبق الواجهة.

Rectangle.java

الطبقة العامة مستطيل الشكل تنفذ {

   Override
   تعادل باطلة العامة () {
      System.out.println ( "داخل المستطيل :: التعادل () طريقة.")؛
   }
}

Square.java

ساحة الطبقة العامة تنفذ الشكل {

   Override
   تعادل باطلة العامة () {
      System.out.println ( "ساحة داخل :: التعادل () طريقة.")؛
   }
}

Circle.java

دائرة الطبقة العامة تنفذ الشكل {

   Override
   تعادل باطلة العامة () {
      System.out.println ( "داخل دائرة :: التعادل () طريقة.")؛
   }
}

خطوة 3

إنشاء واجهة للون.

Color.java

الواجهة العمومية اللون {
   ملء الفراغ ()؛
}

خطوة 4

إنشاء فئة الجهة التي تطبق الواجهة.

Red.java

فئة العمومي الأحمر تنفذ اللون {

   Override
   الفراغ العام التعبئة () {
      System.out.println ( "داخل الأحمر :: التعبئة () طريقة.")؛
   }
}

Green.java

الطبقة العامة الخضراء تنفذ اللون {

   Override
   الفراغ العام التعبئة () {
      System.out.println ( "داخل جرين :: التعبئة () طريقة.")؛
   }
}

Blue.java

فئة العمومي الأزرق تنفذ اللون {

   Override
   الفراغ العام التعبئة () {
      System.out.println ( "داخل الأزرق :: التعبئة () طريقة.")؛
   }
}

خطوة 5

إنشاء فئة مجردة عن اللون وشكل الكائنات للحصول على المصنع.

AbstractFactory.java

فئة مجردة العامة AbstractFactory {
   ملخص اللون getColor (لون سلسلة)؛
   مجردة الشكل getShape (شكل سلسلة)؛
}

خطوة 6

إنشاء الممتدة من الدرجة مصنع AbstractFactory، كيان الجيل كائن فئة على أساس المعلومات المقدمة.

ShapeFactory.java

الطبقة العامة ShapeFactory يمتد AbstractFactory {
	
   Override
   الشكل العام getShape (سلسلة shapeType) {
      إذا (shapeType == فارغة) {
         العودة فارغة؛
      }		
      إذا (shapeType.equalsIgnoreCase ( "الدائرة")) {
         العودة دائرة الجديد ()؛
      } آخر إذا (shapeType.equalsIgnoreCase ( "المستطيل")) {
         العودة مستطيل جديد ()؛
      } آخر إذا (shapeType.equalsIgnoreCase ( "مربع")) {
         العودة ساحة جديدة ()؛
      }
      العودة فارغة؛
   }
   
   Override
   اللون getColor (سلسلة اللون) {
      العودة فارغة؛
   }
}

ColorFactory.java

الطبقة العامة ColorFactory يمتد AbstractFactory {
	
   Override
   الشكل العام getShape (سلسلة shapeType) {
      العودة فارغة؛
   }
   
   Override
   اللون getColor (سلسلة اللون) {
      إذا (لون == فارغة) {
         العودة فارغة؛
      }		
      إذا (color.equalsIgnoreCase ( "RED")) {
         العودة الأحمر الجديد ()؛
      } آخر إذا (color.equalsIgnoreCase ( "الأخضر")) {
         العودة الأخضر الجديد ()؛
      } آخر إذا (color.equalsIgnoreCase ( "الزرقاء")) {
         عودة الأزرق الجديد ()؛
      }
      العودة فارغة؛
   }
}

خطوة 7

إنشاء فئة الخالق / بناء المصنع، ويمر من خلال الشكل أو اللون المعلومات للحصول على المصنع.

FactoryProducer.java

الطبقة العامة FactoryProducer {
   الجمهور getFactory AbstractFactory ثابت (اختيار سلسلة) {
      إذا (choice.equalsIgnoreCase ( "شكل")) {
         العودة ShapeFactory الجديدة ()؛
      } آخر إذا (choice.equalsIgnoreCase ( "COLOR")) {
         العودة ColorFactory الجديدة ()؛
      }
      العودة فارغة؛
   }
}

الخطوة 8

استخدام FactoryProducer للحصول على AbstractFactory، للحصول على كائن من الفئة عن طريق تمرير معلومات نوع الكيان.

AbstractFactoryPatternDemo.java

الطبقة العامة AbstractFactoryPatternDemo {
   (وسائط سلسلة []) العامة ساكنة باطلة الرئيسية {

      // الحصول على شكل مصنع AbstractFactory shapeFactory = FactoryProducer.getFactory ( "شكل")؛

      // احصل على كائن شكل شكل دائرة shape1 = shapeFactory.getShape ( "الدائرة")؛

      // استدعاء الأسلوب التعادل من shape1.draw الدائرة ()؛

      // احصل على وجوه شكل مستطيل الشكل shape2 = shapeFactory.getShape ( "المستطيل")؛

      // استدعاء الأسلوب التعادل من مستطيل shape2.draw ()؛
      
      // احصل على شكل وجوه مربعة الشكل shape3 = shapeFactory.getShape ( "مربع")؛

      // استدعاء الأسلوب التعادل ساحة shape3.draw ()؛

      // احصل على المصانع اللون AbstractFactory colorFactory = FactoryProducer.getFactory ( "COLOR")؛

      // الحصول على لون الجسم هو اللون الأحمر color1 و= colorFactory.getColor ( "RED")؛

      // استدعاء الأسلوب ملء color1.fill الأحمر ()؛

      // احصل على لون جسم أخضر اللون COLOR2 = colorFactory.getColor ( "الخضراء")؛

      // دعوة ملء طريقة color2.fill الأخضر ()؛

      // احصل على لون الجسم أزرق اللون color3 = colorFactory.getColor ( "الزرقاء")؛

      // استدعاء الأسلوب ملء color3.fill الأزرق ()؛
   }
}

خطوة 9

تحقق من الانتاج.

داخل الدائرة :: التعادل () طريقة.
داخل المستطيل :: التعادل () طريقة.
داخل ساحة :: التعادل () طريقة.
داخل الأحمر :: التعبئة () طريقة.
داخل طريقة الأخضر :: التعبئة ().
داخل الأزرق :: التعبئة () طريقة.