class Main {
public static void main(String[] args) {
ShapeFactory shapeFactory = new ShapeFactory();
// هذه السطر سيقوم باعادة شكل هندسي من نوع مربع
Shape square = shapeFactory.getShape("Square");
//لهذا سيطبع
//تم رسم المربع بنجاح
square.draw();
//نفس الشيء بالنسبة لباقي الاسطر
Shape circle = shapeFactory.getShape("Circle");
circle.draw(); //تم رسم الدائرة بنجاح
Shape triangle = shapeFactory.getShape("Triangle");
triangle.draw(); //تم رسم المثلث بنجاح
}
}
// Shape.java
public interface Shape {
void draw();
}
// Circle.java
public class Circle implements Shape {
@Override
public void draw() {
System.out.println("ثم رسم الدائرة بنجاح");
}
}
// Traingle.java
public class Triangle implements Shape {
@Override
public void draw() {
System.out.println("ثم رسم المثلث بنجاح");
}
}
// Square.java
public class Square implements Shape {
@Override
public void draw() {
// يمكنك تغير الكود التالي بمكتبة
// لرسم الاشكال الهندسية مثلا
System.out.println("ثم رسم المربع بنجاح");
}
}
// ShapeFactory.java
public class ShapeFactory {
//هذه الدالة تقرر نوع الكلاس
//بناء على قيمة
//shapeType
public Shape getShape(String shapeType){
if(shapeType == null){
return null;
}
if(shapeType.equalsIgnoreCase("Square")){
return new Square();
} else if(shapeType.equalsIgnoreCase("Circle")){
return new Circle();
} else if(shapeType.equalsIgnoreCase("Triangle")){
return new Triangle();
}
return null;
}
}