[Java] Factory Method Design Pattern
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: أساسيات اللغة Java Basics
صفحة 1 من اصل 1 • شاطر
[Java] Factory Method Design Pattern
أهلا بكم
كنا قد تحدثنا سابقا عن أنماط التصميم Design Pattern كمهوم عام و انواع تلك الانماط فى هذا المقال سنتعلم كيفية استخدام نمط التصميم Factory pattern أو Factory Method Pattern
حيث يعتبر نمط المصنع Factory pattern أو Factory Method Pattern أحد أكثر أنماط التصميم استخدامًا في لغة Java. يوفر هذا النمط أحد أفضل الطرق لإنشاء كائن.
يتم إستخدام نمط المصنع Factory pattern عندما يكون لدينا فئة علوية #super_class ولديه عدد من الفئات الفرعية #sub_classes ونريد إنشاء كائن #object من واحد منها بناء على مدخلات معينة ويتم انشاء نمط المصنع من خلال إنشاء الفئة العلوية #super_class كواجهة #interface أو كفئة مجردة #abstract
يجعلك هذا تبني قالباً تجبر من خلاله كل الفئات الفرعية #sub-classes التي تقوم بعمل وراثة منه بتطبيق الدوال الموجودة في الفئة #super-class لكن بناء على بيانات مختلفة
يمكنك تطبيق نمط المصنع Factory pattern بالخطوات البسيطة التالية :
سنقوم بإنشاء فئة علوية #super_class ويأكن باسم Shape ويتم استخدامها كواجهة #interface وبة طريقة واحد وليكن باسم draw بعد ذلك نقوم بانشاء ثلاثة_أو كما تحب_ فئات فرعية #sub_classes لتنفيذ الواجهة السابقة
الخطوة الاولي :إنشاء واجهة
الخطوة الثانية : إنشاء الفئات المطلوبة فى المثال التى تنفذ الواجهة
الخطوة الثالثة :إنشاء فئة factory class التى سنقوم من خلالها بإنشاء الكائنات object للفئات الفرعية
أخير التنفيذ فى الطريقة الرئسية :
كنا قد تحدثنا سابقا عن أنماط التصميم Design Pattern كمهوم عام و انواع تلك الانماط فى هذا المقال سنتعلم كيفية استخدام نمط التصميم Factory pattern أو Factory Method Pattern
حيث يعتبر نمط المصنع Factory pattern أو Factory Method Pattern أحد أكثر أنماط التصميم استخدامًا في لغة Java. يوفر هذا النمط أحد أفضل الطرق لإنشاء كائن.
كيفية الاستخدام :
يتم إستخدام نمط المصنع Factory pattern عندما يكون لدينا فئة علوية #super_class ولديه عدد من الفئات الفرعية #sub_classes ونريد إنشاء كائن #object من واحد منها بناء على مدخلات معينة ويتم انشاء نمط المصنع من خلال إنشاء الفئة العلوية #super_class كواجهة #interface أو كفئة مجردة #abstract
يجعلك هذا تبني قالباً تجبر من خلاله كل الفئات الفرعية #sub-classes التي تقوم بعمل وراثة منه بتطبيق الدوال الموجودة في الفئة #super-class لكن بناء على بيانات مختلفة
كيفية التطبيق :
يمكنك تطبيق نمط المصنع Factory pattern بالخطوات البسيطة التالية :
- إنشاء واجهة #interface أو فئة مجردة abstract class كفئة علوية
- تنفيذ الواجهة فى الفئات الفرعية أو توسيع الفئة المجردة لوراثة منها
- إنشاء فئة factory class التى سنقوم من خلالها بإنشاء الكائنات object للفئات الفرعية
مثال توضيحي :
سنقوم بإنشاء فئة علوية #super_class ويأكن باسم Shape ويتم استخدامها كواجهة #interface وبة طريقة واحد وليكن باسم draw بعد ذلك نقوم بانشاء ثلاثة_أو كما تحب_ فئات فرعية #sub_classes لتنفيذ الواجهة السابقة
الخطوة الاولي :إنشاء واجهة
Shape.java
- الكود:
public interface Shape {
void draw();
}
الخطوة الثانية : إنشاء الفئات المطلوبة فى المثال التى تنفذ الواجهة
Rectangle.java
- الكود:
public class Rectangle implements Shape {
@Override
public void draw() {
System.out.println("Inside Rectangle::draw() method.");
}
}
Square.java
- الكود:
public class Square implements Shape {
@Override
public void draw() {
System.out.println("Inside Square::draw() method.");
}
}
Circle.java
- الكود:
public class Circle implements Shape {
@Override
public void draw() {
System.out.println("Inside Circle::draw() method.");
}
}
الخطوة الثالثة :إنشاء فئة factory class التى سنقوم من خلالها بإنشاء الكائنات object للفئات الفرعية
ShapeFactory.java
- الكود:
public class ShapeFactory {
//use getShape method to get object of type shape
public Shape getShape(String shapeType){
if(shapeType == null){
return null;
}
if(shapeType.equalsIgnoreCase("CIRCLE")){
return new Circle();
} else if(shapeType.equalsIgnoreCase("RECTANGLE")){
return new Rectangle();
} else if(shapeType.equalsIgnoreCase("SQUARE")){
return new Square();
}
return null;
}
}
أخير التنفيذ فى الطريقة الرئسية :
- الكود:
public class FactoryPatternDemo {
public static void main(String[] args) {
ShapeFactory shapeFactory = new ShapeFactory();
//get an object of Circle and call its draw method.
Shape shape1 = shapeFactory.getShape("CIRCLE");
//call draw method of Circle
shape1.draw();
//get an object of Rectangle and call its draw method.
Shape shape2 = shapeFactory.getShape("RECTANGLE");
//call draw method of Rectangle
shape2.draw();
//get an object of Square and call its draw method.
Shape shape3 = shapeFactory.getShape("SQUARE");
//call draw method of square
shape3.draw();
}
}
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: [Java] Factory Method Design Pattern
تقدم إتقان مجموعة من الحلول المبتكرة لمساعدتكم في تأسيس أعمالهم في دبي.
كما تزودكم بجميع ما تحتاجونه من خدمات لإطلاق أعمالكم وتطويرها، أيا كان نشاطكم وأيا كان الخيار الأمثل لأعمالكم
خطوات تأسيس شركة في دبي
تأسيس شركة في المنطقة الحرة
تأسيس شركة في دبي للخليجيين
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: أساسيات اللغة Java Basics
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
أمس في 1:38 pm من طرف moslema_r
» تصميم تطبيق جوال لمغسلة ملابس
الخميس سبتمبر 05, 2024 7:22 am من طرف mona mohamed
» تصميم تطبيق جوال لشركة عقارات
الأربعاء سبتمبر 04, 2024 11:34 am من طرف mona mohamed
» شركة مكافحة النمل الابيض بالرياض
الثلاثاء سبتمبر 03, 2024 7:04 pm من طرف moslema_r
» تصميم تطبيق جوال لنقل الاثاث
الإثنين سبتمبر 02, 2024 12:08 pm من طرف mona mohamed
» هناجر
السبت أغسطس 31, 2024 7:25 pm من طرف moslema_r
» تصميم تطبيق جوال لمتجر ورد
الخميس أغسطس 29, 2024 7:16 am من طرف mona mohamed
» تصميم تطبيق جوال لسلسلة مطاعم
الثلاثاء أغسطس 27, 2024 7:42 am من طرف mona mohamed
» تصميم تطبيق جوال لتوصيل الطلبات
الأحد أغسطس 25, 2024 7:38 am من طرف mona mohamed
» مظلات سيارات متحركة
الخميس أغسطس 22, 2024 8:30 pm من طرف moslema_r