Latest web development tutorials

وضع المصنع

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

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

مقدمة

القصد: تعريف واجهة كائن خلق، دعونا الفئات الفرعية التي تقرر الطبقة إنشاء مثيل المصنع، ونمط مصنع لجعل عملية إنشاء التأخير إلى الفئة الفرعية.

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

متى تستخدم: عندما نخلق صراحة الحالات المختلفة في إطار خطة ظروف مختلفة.

كيفية إصلاح: السماح فرعية لتنفيذ واجهة المصنع، هو منتج مجردة عاد.

رمز مفتاح: عملية إنشاء أعدم في الفئات الفرعية.

أمثلة التطبيق: 1، كنت في حاجة الى سيارة، يمكنك ان تلتقط من داخل المصنع مباشرة، دون الحاجة إلى أنابيب السيارة هي كيفية القيام بذلك، فضلا عن تنفيذ داخل السيارة.2 قاعدة بيانات الصرف السبات مجرد تغيير لهجة والقيادة يمكن أن يكون.

المزايا: 1، أراد المتصل لإنشاء كائن، أعلم تماما اسمها عليه.2، والتدرجية العالية، وإذا كنت ترغب في إضافة منتج، طالما أن التوسع في فئة المصنع يمكن أن يكون. 3، التدريع تحقيق المنتج، والمتصل المعنية فقط مع واجهة المنتج.

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

سيناريوهات الاستخدام: 1، المسجل: قد يتم تسجيل السجلات إلى القرص الثابت المحلي، الحدث النظام، الملقم البعيد، يمكن للمستخدم اختيار تسجيل في مكان ما.2، والوصول إلى قاعدة البيانات، وعندما يقوم المستخدم لا يعرف ما هو نوع النظام النهائي يستخدم قاعدة بيانات، وربما تغيير قاعدة البيانات. 3، وتصميم إطار للاتصال بالخادم، تحتاج ثلاث اتفاقيات، "POP3"، "IMAP"، "HTTP"، يمكن لهذه ثلاثة كفئة المنتج، لتحقيق واجهة مشتركة.

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

تحقيق

سنقوم إنشاء واجهة الطبقة كيان واجهةالشكلتنفيذالشكل.والخطوة التالية هي لتعريف الفئات مصنعShapeFactory.

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

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

خطوة 1

إنشاء واجهة.

Shape.java

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

خطوة 2

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

Rectangle.java

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

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

Square.java

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

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

Circle.java

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

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

خطوة 3

إنشاء مصنع لإنتاج الطبقات كيان الكائن على أساس المعلومات المقدمة.

ShapeFactory.java

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

خطوة 4

استخدام المصنع للحصول على وجوه كيان الطبقة عن طريق تمرير معلومات نوع.

FactoryPatternDemo.java

الطبقة العامة FactoryPatternDemo {

   (وسائط سلسلة []) العامة ساكنة باطلة الرئيسية {
      ShapeFactory shapeFactory = ShapeFactory الجديدة ()؛

      // احصل على الكائن دائرة، وندعو لها shape1 طريقة التعادل الشكل = shapeFactory.getShape ( "الدائرة")؛

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

      // الحصول على كائن مستطيل، وندعو shape2 طريقة التعادل شكله = shapeFactory.getShape ( "المستطيل")؛

      // استدعاء الأسلوب التعادل من مستطيل shape2.draw ()؛

      // الحصول على كائن مربع، وندعو لها shape3 طريقة التعادل الشكل = shapeFactory.getShape ( "مربع")؛

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

خطوة 5

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

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