"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > أنماط التصميم في جافا مع أمثلة

أنماط التصميم في جافا مع أمثلة

تم النشر بتاريخ 2024-11-09
تصفح:456

Design Patterns in Java with examples

ما هي أنماط التصميم في جافا؟

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

أنواع أنماط التصميم

  • الأنماط الإبداعية: التعامل مع آليات إنشاء الكائنات.
  • الأنماط الهيكلية: تهتم بكيفية تكوين الفئات والأشياء.
  • الأنماط السلوكية: التركيز على التواصل بين الأشياء.

استخدامات أنماط التصميم

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

أمثلة على أنماط التصميم

1. نمط سينجلتون

    public class Singleton {
        private static Singleton instance;

        private Singleton() {}

        public static Singleton getInstance() {
            if (instance == null) {
                instance = new Singleton();
            }
            return instance;
        }
    }
الايجابيات:
  • التحكم في الوصول إلى مثيل واحد.
  • يحفظ الذاكرة عن طريق منع حالات متعددة.
سلبيات:
  • صعوبة الاختبار بسبب الحالة العالمية.
  • يمكن أن يؤدي إلى اقتران محكم.

2. نمط المراقب

    import java.util.ArrayList;
    import java.util.List;

    interface Observer {
        void update(String message);
    }

    class Subject {
        private List observers = new ArrayList();

        public void addObserver(Observer observer) {
            observers.add(observer);
        }

        public void notifyObservers(String message) {
            for (Observer observer : observers) {
                observer.update(message);
            }
        }
    }
الايجابيات:
  • يعزز الاقتران غير المحكم بين الموضوع والمراقبين.
  • قابلة للتمديد بسهولة مع مراقبين جدد.
سلبيات:
  • ضعف الأداء في حالة وجود العديد من المراقبين.
  • صعوبة التصحيح بسبب الاتصال غير المباشر.

3. نمط البناء

    class Product {
        private String part1;
        private String part2;

        public void setPart1(String part1) { this.part1 = part1; }
        public void setPart2(String part2) { this.part2 = part2; }
    }

    class Builder {
        private Product product = new Product();

        public Builder buildPart1(String part1) {
            product.setPart1(part1);
            return this;
        }

        public Builder buildPart2(String part2) {
            product.setPart2(part2);
            return this;
        }

        public Product build() {
            return product;
        }
    }
الايجابيات:
  • يبسط عملية إنشاء الكائنات المعقدة.
  • يجعل الكود أكثر قابلية للقراءة والصيانة.
سلبيات:
  • يضيف التعقيد مع فئات البناء المتعددة.
  • يمكن أن يكون مبالغًا فيه بالنسبة للأشياء البسيطة.

4. نمط المصنع

    interface Shape {
       void draw();
    }

    class Circle implements Shape {
       public void draw() { System.out.println("Drawing a Circle"); }
    }

    class Rectangle implements Shape {
       public void draw() { System.out.println("Drawing a Rectangle"); }
    }

    class ShapeFactory {
       public Shape getShape(String shapeType) {
          if (shapeType == null) return null;
          if (shapeType.equalsIgnoreCase("CIRCLE")) return new Circle();
          if (shapeType.equalsIgnoreCase("RECTANGLE")) return new Rectangle();
          return null;
       }
    }
الايجابيات:
  • يلخص منطق إنشاء الكائن.
  • قابلة للتمديد بسهولة للأشكال الجديدة دون تعديل التعليمات البرمجية الموجودة.
سلبيات:
  • إضافة فئات إضافية يمكن أن تزيد من التعقيد.
  • إذا لم يتم استخدامه بشكل صحيح، يمكن أن يؤدي إلى انتشار فئات المصانع.

عصابة الأربعة (GoF)

تشير "عصابة الأربعة" إلى مؤلفي الكتاب المؤثر بعنوان "أنماط التصميم: عناصر البرامج الموجهة للكائنات القابلة لإعادة الاستخدام". قدم المؤلفون - إريك جاما، وريتشارد هيلم، ورالف جونسون، وجون فليسيدس - 23 نمطًا من أنماط التصميم الكلاسيكي التي أصبحت أساسًا لهندسة البرمجيات.

خاتمة

تعد أنماط التصميم أدوات أساسية في برمجة Java والتي تساعد المطورين على إنشاء أنظمة قوية وقابلة للصيانة. يعد فهم استخداماتها ومزاياها وعيوبها أمرًا بالغ الأهمية لتصميم البرامج الفعال. توفر مساهمات عصابة الأربعة أساسًا متينًا لتطبيق هذه الأنماط بشكل فعال.

بيان الافراج تم نشر هذه المقالة على: https://dev.to/codegreen/design-patterns-in-java-with-examples-1klg?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3