الوقت/التاريخ الآن هو الخميس مارس 28, 2024 3:43 pm
1 نتيجة بحث عن sub_classes
[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 بالخطوات البسيطة التالية :
- إنشاء واجهة #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();
}
}
- في الخميس مارس 24, 2022 7:25 pm
- ابحث في: أساسيات اللغة Java Basics
- موضوع: [Java] Factory Method Design Pattern
- المساهمات: 1
- مشاهدة: 571
الثلاثاء مارس 26, 2024 6:26 pm من طرف moslema_r
» شركة تنظيف استراحات بالرياض
الأحد مارس 24, 2024 10:49 pm من طرف moslema_r
» كشف تسربات المياه في جدة
السبت مارس 23, 2024 7:23 pm من طرف gmalnagy
» خدمات كشف تسربات المياه بخصم 25% - اتصل الان
السبت مارس 23, 2024 7:22 pm من طرف gmalnagy
» شركة تنظيف ثريات بالرياض
الخميس مارس 21, 2024 7:23 pm من طرف moslema_r
» كهربائي منازل بالرياض
الأحد مارس 17, 2024 1:52 pm من طرف رانيا حماد
» افضل شركة نقل عفش بالرياض نقل باكستاني 40% خصم | موقع الانوار
الأحد مارس 17, 2024 1:25 pm من طرف رانيا حماد
» افضل معلم جبس بالرياض تركيب جبس بورد بالرياض 20% خصم اتصل الآن
الأحد مارس 17, 2024 1:09 pm من طرف رانيا حماد
» شراء اثاث مستعمل بالكويت بخصم 30%
الأحد مارس 17, 2024 12:54 pm من طرف رانيا حماد
» افضل فني كهربائي منازل بالرياض جودة 100% | اتصل الآن
الأحد مارس 17, 2024 12:36 pm من طرف رانيا حماد