مميزات الكتاب
تخبرنا أنماط تصميم الرأس الأول عن الأنماط وكيفية استخدامها وكيفية التفكير فيها. النمط هو قالب، وهو حل عالمي لمجموعة محددة من المشاكل. تعد أنماط التصميم بدورها حلولًا معمارية شائعة الاستخدام يمكن استخدامها لكتابة تطبيقات سهلة الاستخدام ومرنة. يقوم المطورون في جميع أنحاء العالم بحل نفس المشكلات بنفس الأساليب. كما يقول التعليق التوضيحي، إذا كنت لا ترغب في إعادة اختراع العجلة، فاستخدم قوالب التصميم الجاهزة (الأنماط)، والتي خصص هذا الكتاب للعمل معها . بشكل منفصل، تجدر الإشارة إلى عرض المادة: الكتب في سلسلة "الرأس الأول" مشهورة ببساطتها ويتم قراءتها في جلسة واحدة. "أنماط التصميم" ليست استثناء. كما تلتزم بالمبادئ الأساسية التالية:- الرؤية
- أسلوب العرض الحواري
- عدد كبير من الرسوم التوضيحية
- مشاركة القارئ النشطة
- مناشدة العواطف
- جذب انتباه القارئ
الموضوع الرئيسي والفكرة الرئيسية
"بالتأكيد قام شخص ما بحل مشكلتك بالفعل" - هكذا يبدأ الفصل الأول من الكتاب، حيث ينقل المعنى الكامل لأنماط التصميم في البرمجة. الهدف الرئيسي هو نقل معناها بشكل صحيح إلى القارئ، لأنه أولاً وقبل كل شيء، يجب على المبرمج أن يعرف الغرض من الأنماط وفي أي نقطة يجب تطبيقها. بشكل أساسي، تحتاج أولاً إلى فرز القوالب إلى أجزاء صغيرة في رأسك، وبعد ذلك فقط تنفيذها في برامج. إذا كان المبتدئ في البرمجة لديه فهم جيد للأنماط، فإن استخدامها يمكن أن يؤدي إلى تعقيد التعليمات البرمجية بشكل كبير (ولكن يجب تبسيطها!). على السؤال "لماذا يجب استخدام أنماط التصميم؟" يقدم الكتاب إجابة واضحة: "معرفة مفاهيم مثل التجريد والميراث وتعدد الأشكال لا تجعلك مصممًا جيدًا لـ OO. تحتوي الأنماط على تجربة تصميم OO مثبتة."ملخص"
ينقسم الكتاب إلى 14 فصلاً بالإضافة إلى المقدمة. في البداية، يحاول مؤلفو الكتاب إعداد القارئ، وضبط دماغه لإدراك المعلومات حول تصميم الأنماط بشكل صحيح. يشرح الفصل الأول المبدأ الأساسي للأنماط والأغراض التي تخدمها. يتم فحص أحد الأنماط الأكثر استخدامًا - الإستراتيجية - بسهولة وبشكل مخفي. الفصول من الثاني إلى الحادي عشر مخصصة لتحليل مفصل للأنماط الفردية :- مراقب. يوزع الأحداث عبر الكائنات المهتمة بحدوثها.
- ديكور. نظرة أخرى على الميراث في Java ومنح فئات Java إمكانات جديدة دون تعديل الكود.
- مصنع. يحفظ النمط الكود من التبعيات غير المرغوب فيها.
- أعزب. يُعرف أيضًا باسم Singleton، وهو يسمح لك بإنشاء كائن فئة واحدة للبرنامج بأكمله.
- فريق. يسمح لك هذا النمط بتغليف استدعاء الأسلوب بشكل ملائم، مما يؤدي إلى توسيع إمكانياته.
- المحول والواجهة. حل مشكلة عدم توافق الواجهة، بالإضافة إلى تغليف الكائنات لتبسيط واجهتها.
- طريقة القالب. تغليف الكتل الخوارزمية، مما يسمح للفئات الفرعية بالارتباط بخوارزمية المعالجة المطلوبة في أي وقت.
- التكرار والرابط. يوفر النمط أداة مناسبة للتكرار عبر المجموعات، بغض النظر عن نوعها. بالإضافة إلى ذلك، يقدم الفصل بعض المعلومات حول المجموعات الفائقة.
- ولاية. تتمتع الكائنات بالقدرة على التحكم في سلوكها من خلال التغييرات في حالتها الداخلية.
- نائب. نمط مناسب جدًا للتحكم في الوصول إلى كائن ما.
المميزات والعيوب
أنا، مثل العديد من أولئك الذين يدرسون في JavaRush، لدي موقف بارد تجاه المحاضرات المملة، وحشو المواد وغيرها من أعمال العنف ضد نفسية الطالب المتعطش للمعرفة. في رأيي، من الأفضل إنفاق الطاقة التي تنفق على حفظ النصوص غير المفهومة على إيجاد مصادر بديلة للتعلم. هذا الكتاب هو الذي يستحق وقتك وجهدك. يشكل أسلوب العرض الممتاز والإدارة الكفؤة لاهتمام القارئ وتكرار النقاط الرئيسية الميزة الرئيسية لهذا الكتاب - سهولة استيعاب المادة . يعد عدد كبير من الرسوم التوضيحية ميزة إضافية. في رأيي، كل صورة في الكتاب لها مكانها: فهي جميعها تسمح لك بتعزيز كلمات المؤلفين واكتساب فهم أعمق لجوهر المادة. كما كتبت أعلاه، هذا الكتاب ليس كتابا مرجعيا: مؤلفوه لا يعتزمون سرد جميع الأنماط. وتتمثل مهمتها الرئيسية في توفير الفهم والتحدث عن الأنماط الأساسية بحيث يسهل إدراك الأنماط الأخرى الأكثر تعقيدًا. وهي تتأقلم مع هذا بنسبة 100٪. من بين العيوب أن أنماط تصميم الرأس الأول باللغة الروسية ليست سهلة القراءة كما هو الحال في اللغة الإنجليزية. بالطبع، يجب على كل مطور التحدث باللغة الإنجليزية، لكن المبرمجين المبتدئين لا يطورون دائمًا هذه المهارة إلى الحد الذي يمكنهم من قراءة الكتب بنسختها الأصلية. ومع ذلك، يمكن اعتبار هذا ناقصًا قسريًا، حيث يتم تقديم المادة بدقة تامة ويتم الحفاظ على المعنى.كتب إضافية عن أنماط التصميم
أنا من أنصار الاعتقاد بأنه من الأفضل دراسة المواضيع الأساسية من عدة مصادر والبحث عن أسلوب العرض المناسب فيها. عندما تريد الغوص في الأنماط وقراءة نظريات إضافية، صدقني، سيكون لديك ما يشغل أمسياتك.-
تقنيات التصميم الموجهة للكائنات. أنماط التصميم (جاما إي، هيلم آر، جونسون آر، فليسيدس جيه).
هذا منشور أكثر جدية، كتاب مرجعي للأنماط، كتاب محترم للغاية من "عصابة الأربعة". يسميه الكثيرون الكتاب المقدس لتصميم OO.
على الإنترنت، تنقسم آراء المطورين إلى 3 معسكرات:
- يرى البعض أن الكتاب قديم وأن أسلوب العرض يجعل من المستحيل قراءته
- يوصي آخرون باستخدام الكتاب فقط ككتاب مرجعي للأنماط، لا أكثر
- لا يزال البعض الآخر يقول أن الكتاب هو الكأس المقدسة لأنماط التصميم ويجب قراءته من قبل أي شخص يريد أن يصبح يومًا ما أحد كبار مطوري جافا
مهم:الأمثلة الموجودة في الكتاب مكتوبة بلغة C++.
-
جافا إي. أنماط التصميم للمحترفين (مراد ينر، أليكس فيدوم).
هذا الكتاب مخصص لتصميم تطبيقات المؤسسات: وهو يغطي العديد من الأمثلة على مشكلات التطبيقات الواقعية.
-
أنماط التصميم في جافا (جراند م).
يوضح الكتاب بشكل ملون كيف أن استخدام الأنماط يوفر وقت المطورين، ويقدم نظرة عامة على لغة UML، ويصف 47 نمط تصميم.
أنماط التصميم في JavaRush
في دورة JavaRush، يتم تعلم أنماط التصميم في المستوى 7 من مهمة Java Collections. المحاضرتان 1 و 2 مخصصتان للأنماط الأكثر شيوعًا، وفي المحاضرة 4 يمكنك حل المشكلات المتعلقة بهذا الموضوع. فيما يلي بعض المقالات المثيرة للاهتمام "لتقوية نفسك":-
مقال عام عن موضوع الأنماط مع الفئات والأمثلة وكل ما نحبه.
-
مقالتان عن الأنماط: نظرة عامة على الجزء الأول والجزء الثاني الأكثر تفصيلاً .
-
أنماط التصميم باستخدام نمط Singleton كمثال .
-
مقالات حول أنماط " الاستراتيجية " و" المحول ".
-
يرتبط مفهوم أنماط التصميم بمخططات UML، وستساعدك هذه المقالة على فهم ماهيتها.
GO TO FULL VERSION