Factory Design Pattern

Run Settings
LanguageJava
Language Version
Run Command
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; } }
Editor Settings
Theme
Key bindings
Full width
Lines