عدة مبادئ تصميم نحن بحاجة لمتابعة في التنمية

pengdai جافا تطوير الفيلق

الكاتب: pengdai

أولا، مبدأ التنمية

S: واحد SRP المسؤولية

O: مبدأ المفتوح المغلق OCP

L: ريختر تبديل مبدأ LSP

I: واجهة الحكم العزلة

D: التبعية عكس مبدأ DIP

مبادئ مضاعفة الاصطناعية / البوليمر

ديميتر

في مجال تطوير البرمجيات، تصميم وتطوير البرمجيات لنظام السابق يلخص بعض المبادئ والنماذج، بغض النظر عن اللغة لا تطوير، سيكون لدينا لتقديم تصميم النظام وتوجيه التنمية. وهذه الورقة تلخيص هذه المبادئ الحس السليم وعلى وجه التحديد معالجتها.

بالإضافة إلى هذه المبادئ الخمسة فضلا عن قانون ديميتر وإعادة الاصطناعية كثيرا ما يذكر، فإنه يقال إن المبادئ الأساسية للوجوه المنحى (الصلبة) هو خمسة، ولكن عادة في مقال كتبه ستة أو المبادئ السبعة، بالإضافة I سيعطي أيضا بعض المبادئ التي تظهر على غيرها من الكتب والإنترنت؛

اثنين، S SRP المسؤولية احد

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

1. التعاريف

يجب أن يحتوي على الكائن فقط مسؤولية واحدة، ويتم تغليف تماما المسؤولية في فئة. (يجب أن يكون كل كائن مسؤولية واحدة، وهذه المسؤولية يجب أن تكون مغلفة تماما من قبل الطبقة.)، أي أنه يحدد الأسباب التي تجعل هناك تغييرات فئة واحدة فقط.

2، تحليل المبدأ

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

وتشمل الفئة المسؤوليات جانبين: واجبات ومسؤوليات السلوك البيانات واجبات بيانات جيدة كما ممتلكاتهم، وتعكس سلوك الواجبات التي أساليبها.

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

3، ومزايا

تقليل تعقيد الطبقة، طبقة من مسؤوليات واضحة. الواجبات والمسؤوليات من البيانات مثل السلوك واضح،

تحسين القراءة والصيانة من الفئة؛

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

اقترح مسؤولية واحدة مبدأ موحد لكتابة البرامج مع "المسؤولية" أو "العقل من أجل التغيير" لقياس واجهة أو فئة مصممة لتكون معقولة، ولكن "واجب" و "سبب التغيير" ليست معايير محددة، فئة: مذكرة في النهاية مسؤولة عن تلك الرسوم؟ كيفية صقل هذه المسؤوليات؟ ما إذا كان ينبغي أن يكون هناك واجهة أو فئة بعد الصقل؟ وهذه هي التي سينظر فيها من الواقع العملي. من مشروع إلى مشروع، فإنه يختلف مع البيئة.

4، مثال

فصل الكيان SpringMVC، DAO، خدمة، المراقب المالي، UTIL مثل.

ثلاثة، O المفتوحة مقفلة مبدأ OCP

فتح - ClosedPrinciple، OCP مفتوحة للتمديد (المبادئ الأساسية لأنماط التصميم) مغلق للتعديل

1. التعاريف

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

2، تحليل المبدأ

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

المفتاح لتحقيق فتح ومبدأ إغلاق هو التجريد: إن "على - قبالة"، لا يسمح من حيث المبدأ على تعديل فئة مجردة أو واجهة، والسماح للتوسع من قبل فئة معينة، فئات مجردة واجهات في "على - قبالة" مبادئ انها تلعب دورا هاما جدا .. وهذا هو، على التنبؤ بالاحتياجات المتغيرة ممكنة. أنها تتوقع كافة الملحقات الممكنة لتعرف .. حتى هنا "التجريد" هو المفتاح!

تقلب مغلقة مبدأ: العثور على متغيرات النظام، سيتم تغليف ذلك. وهذا - أفضل لتحقيق "على الخروج" من حيث المبدأ. لا تضع المتغيرات الخاصة بك في فئات متعددة، أو مبعثرة في كل ركن من أركان البرنامج. يجب أن تكون العوامل المتغيرة، المغلف حتى .. ولا تجنب المتغيرات المستخدمة في معا المغلف. الحل الأفضل هو لمنع ظرف من المتغيرات الخاصة بك! تجنب الصفوف الكبيرة، والطبقة طويلة، ويبدو نهج طويل لبرنامجك !! زيادة في الفن، وبرنامج الفن هو هدفنا!

3 أمثلة

طريقة قالب نمط التصميم ونماذج مراقب وافتتاح ممتاز وإغلاق المبدأ الوارد.

أربعة، L ريختر تبديل مبدأ LSP

Liskov تبديل المبدأ، LSP: حيث يمكن أن تظهر أي الفئة الأساسية، يمكن أن يحدث فرعية، وأظهرت هذه الفكرة قواعد ضبط النفس من الميراث، إلا فرعية يمكن أن تحل محل الفئة الأساسية، وذلك لضمان النظام في وقت التشغيل تحديد الفئة الفرعية، والتي هي لضمان أن ورثت إعادة استخدام قاعدة.

1. التعاريف

الطريقة الأولى لتحديد صارم نسبيا: إذا S لكل نوع من الكائنات O1 و O2 هي كائن من نوع T، ويعرف T هذا أن جميع البرامج لكافة الكائنات في O1 P O2 يتم استبدال عن طريق استبدال، برنامج P لا يغير السلوك، ثم نوع S هو نوع فرعي من نوع T.

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

ريختر مبدأ الإحلال من قبل جائزة تورينج 2008، أدلى الدكتوراه الأولى في أمريكا في علوم الحاسب الآلي، معهد ماساتشوستس للتكنولوجيا أستاذ BarbaraLiskov والأستاذ في جامعة كارنيجي ميلون جانيت الجناح في عام 1994. التي تنص على ما يلي: دعونا ف (س) أن يكون provableabout الملكية كائنات العاشر من نوع T. ثم ف (ص) يجب أن يكون صحيحا لكائنات ص من نوع Swhere S هو نوع فرعي من T.

2، تحليل المبدأ

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

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

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

خمسة، واجهة الحكم العزلة

(واجهة الفصل المبدأ، ISL): يجب على العميل عدم الاعتماد على تلك التي لا تتطلب واجهات. (هذا القانون وقانون ديميتر هو نفسه)

1. التعاريف

يجب على العميل عدم الاعتماد على تلك التي لا تتطلب واجهات.

ويعرف طريقة أخرى: مرة واحدة واجهة كبيرة جدا، فإنه يحتاج إلى أن تنقسم إلى عدد من واجهة الدقيقة، واستخدام واجهة العميل يحتاج فقط لمعرفة طريقة المرتبطة به.

لاحظ أنه في تعريف واجهة أنه يشير إلى الطريقة المحددة أعلاه. فعلى سبيل المثال الأساليب العامة لدعوات الطبقة الخارج. هذا الأسلوب هو الواجهة الخارجية.

2، ومبدأ التحليل:

(1) عزل واجهة المبدأ يشير إلى استخدام عدد وافر من واجهات مخصصة، من دون استخدام واجهة عامة واحدة. لكل واجهة يجب أن تضطلع بدور مستقل نسبيا، ولكن ليس كثيرا، لا ينبغي ترك فعل شيء ما، يجب أن يكون الأمر الجافة الجافة.

واجهة لتمثيل هذا الدور، وكل دور له واجهة محددة، ثم هذا المبدأ يمكن أن يطلق على "مبدأ فصل الدور."

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

(2) تقسيم واجهة استخدام مبادئ العزلة واجهة، يجب أولا تلبي مبدأ مسؤولية واحدة، مجموعة من العمليات المعرفة في واجهة ذات الصلة، وتلبية ارتفاع فرضية متماسك، وأفضل أسلوب واجهة.

(3) لا يمكن أن يؤديها باستخدام نظام مخصص خدمات التصميم بطريقة مختلف العملاء لتوفير واجهة العرض المختلفة، وتوفير احتياجات المستخدم السلوك فقط، ولكن لا حاجة لإخفاء سلوك المستخدم.

ستة، D التبعية عكس مبدأ DIP

تبعية عكس مبدأ الاعتماد على ملخص بدلا من الاعتماد على تنفيذ محددة، وتحديدا، لا تعتمد على الكامنة رفيع المستوى وحدة وحدة، ورئيسان تعتمد على التجريد. مجردة لا تعتمد على خاصة، تعتمد على التجريد معين.

1. التعاريف

لا ينبغي أن يعتمد وحدات رفيع المستوى على وحدات على مستوى منخفض، والتي ينبغي أن تعتمد على التجريد. يجب مجردة لا تعتمد على التفاصيل، والتفاصيل يجب أن تعتمد على التجريد. ببساطة، مبدأ التبعية عكس يتطلب أن العملاء تعتمد على اقتران مجردة. مبدأ التمثيل:

(1) يجب أن لا تعتمد على تفاصيل مجردة، وينبغي تفاصيل تعتمد على التجريد.

(2) إلى واجهة للبرمجة، وليس من أجل تحقيق البرمجة.

2، تحليل المبدأ

(1) إذا كانت فتح ومبدأ إغلاق هو الهدف التصميم وجوه المنحى، وتصميم التبعية مبدأ عكس هو "على الخروج" وسائل الموجهة المبدأ لتصل .. إذا كنت ترغب في تحقيق أفضل "على الخروج" من حيث المبدأ، علينا أن نحاول يتوافق مع التبعية عكس المبدأ. ويمكن القول هو أفضل معايير مبدأ التبعية انقلاب "مجردة" من! وأنا شخصيا أشعر، التبعية مبدأ انعكاس هو مبدأ الاستبدال لإضافة ليب .. فهمت مبدأ الإحلال ريختر، ينبغي عكس مبدأ تأتي لفهم تبعيات فمن السهل.

واحد (2) التنفيذ المشترك التبعية عكس المبدأ هو استخدام فئة مجردة في التعليمات البرمجية، والطبقة المحددة في ملف التكوين.

(3) اقتران بين فئات هي: الصفر علاقة اقتران ومحددة اقتران العلاقة، علاقة اقتران مجردة. يتطلب الاعتماد على عكس مبدأ العميل التجريد تعتمد على اقتران، يقترن إلى مفتاح مجردة الاعتماد على عكس المبدأ.

3، مثال 1

الاعتماد على عكس فهم هذا، ونحن بحاجة إلى فهم أولا وقبل كل الاعتماد على مفهوم التصميم وجوه المنحى:

تبعيات (التبعية): فهي علاقة استخدام، وتغيير بعض الأشياء التي من المحتمل أن تؤثر على أشياء أخرى، واستخدام الشيء، والحاجة لتمثيل تبعيات عند استخدام شيء واحد لاستخدام شيء مختلف. (على افتراض تغيير فئة A يؤدي إلى تغيير في الدرجة B، فئة B يعتمد على اسم الفئة A. قال) في معظم الحالات، يعكس الاعتماد فئة أخرى باستخدام الكائن في أسلوب فئة كمعلمة. في UML تبعيات ممثلة خطوط مكسورة مع السهام، لافتا إلى أن الحزب يعتمد تعتمد.

4، مثال 2

نظام يوفر وحدة تحويل البيانات التي يمكن تحويل البيانات من مصادر بيانات مختلفة في مجموعة متنوعة من الأشكال، مثل البيانات يمكن تحويل من قاعدة البيانات (DatabaseSource)، وبيانات يمكن تحويل (TextSource) من ملف نصي، يمكن للشكل أن يكون تحويل هو ملف XML (XMLTransformer) يمكن أيضا أن يكون ملف XLS (XLSTransformer) وهكذا.

نتيجة للتغيرات في الطلب، قد يحتاج النظام لإضافة مصدر جديد بيانات أو تنسيق ملف جديد، ولكل نوع جديد من مصدر البيانات أو نوع جديد من تنسيق الملف، عميل الطبقة MainClass الحاجة إلى تعديل التعليمات البرمجية المصدر للجديد الطبقة، ولكن خلافا لمبدأ الافتتاح والختام. الآن نستخدم يتم بناؤها مبدأ التبعية عكس.

وبطبيعة الحال، تبعا للظروف، قد يتم حقنه في AbstractSource AbstractStransformer، حقن التبعية له الطرق الثلاث التالية:

سبعة، الاصطناعية / مبادئ مضاعفة البوليمرية

(المركب / الحصى ReusePrinciple، CARP): لتحقيق الاستفادة الكاملة من تكوين الكائن بدلا من العلاقات الميراث لتحقيق الغرض من إعادة استخدام البرمجيات.

1. التعاريف

وغالبا ما تسمى أيضا مضاعفة مبادئ التوليف (المركب ReusePrinciple أو CRP)، للاستفادة من تكوين الكائن بدلا من الميراث لتحقيق الغرض من إعادة استخدامها.

وهذا هو، وجوه جديدة والتي تستخدم بعض الكائنات الموجودة، لتصبح جزء من الكائن الجديد، والغرض من كائن جديد عن طريق إعادة استخدام الوظائف الموجودة لتفويض هذه الكائنات. باختصار، يجب علينا الاستفادة الكاملة من الاصطناعية / البوليمرية، وليس محاولة لاستخدام الميراث.

2، تحليل المبدأ

(1) في تصميم وجوه المنحى، ويمكن إعادة استخدام طريقتين أساسيتين تصميم القائمة وتنفيذها في بيئات مختلفة، أي من خلال مزيج من / أو البلمرة من خلال علاقات الميراث.

الميراث لإعادة الاستخدام : بسيطة وسهلة لتوسيع. تدمير نظام التغليف، مشتقة من الفئة الأساسية يرث تنفيذ هو ثابت، وتغيير المرجح أن يحدث في العملية، وليس هناك ما يكفي من المرونة؛ إلا في ظروف محدودة. ( "مربع أبيض" المتعدد)

تكوين / مجمع متعدد : درجة اقتران منخفضة نسبيا، وعضو عملية استدعاء بشكل انتقائي وجوه؛ حيوي في وقت التشغيل. ( "الصندوق الأسود" المتعدد)

(2) مجموعة من البلمرة / قد جعل النظام أكثر مرونة، والحد من درجة اقتران بين الطبقة والطبقة، وتغيير طفيف نسبيا في تأثير الطبقة الطبقات الأخرى الناجمة، ويفضل عموما إلى استخدام مزيج من / مضاعفة البلمرة تنفيذها، وبشكل ثانوي النظر في الميراث، عند استخدام الميراث، ونحن بحاجة لمتابعة صارمة لمبدأ الإحلال ريختر، والاستخدام الفعال للالميراث من شأنه أن يساعد في فهم المشكلة، والحد من التعقيد، وإساءة استخدام الميراث ولكن سيزيد من تعقيد بناء وصيانة أنظمة وصعوبة نظام ولذلك، توخي الحذر في استخدام الميراث لإعادة استخدامها.

(3) هذا المبدأ ومبدأ مكملة استبدال ريختر، سواء الخرسانة تحقيق - مواصفات "على الخروج" من حيث المبدأ. انتهاك هذا المبدأ لا يمكن أن يتحقق "فتح - مغلقة" من حيث المبدأ، ونحن بحاجة إلى فهم مفهوم تركيب وبلمرة:

ملاحظة: ما البلمرة ومجموعات الفرق هو؟

توليف (مجموعات) : يمثل جزءا لا يتجزأ من العلاقة، والعلاقة بين الوسائل كلها موجودة (لا يتجزأ مع الجزء فصل) الاعتماد، مثل العينين والفم، بل هو مزيج من العلاقة في الرأس، لن يكون هناك رئيس من دون العينين والفم، والتي لا تجزئة. في UML، وعلاقة خطية مع تكوين مثلت مع الماس الصلبة.

تجميع : تجميع أقوى من علاقة علاقة تبعية الاصطناعية، وقالت العلاقة بين (يمكن فصل جزء كامل) جزء لا يتجزأ، مثل المسامير والعلاقة بين لعبة السيارات، لعبة من المسمار يمكن الاستمرار في استخدام على أجهزة أخرى. في UML، ويمثل علاقة التجميع بواسطة خط مستقيم مع الماس مفتوحة.

ثمانية، ديميتر

(قانون ديميتر، اللد: النظام الطبقي، حتى لا تتفاعل مع أنواع أخرى، للحد من درجة اقتران بين الطبقات.

1. التعاريف

المعروف أيضا باسم مبدأ أقل المعرفة (الأقل مبدأ المعرفة أو ببساطة LKP) تعريف عدة أشكال:

لا "الغرباء" ليتكلم. ويعرف الإنجليزية على النحو التالي: لا تتحدث مع الغرباء.

أصدقاء التواصل فقط معك مباشرة. ويعرف الإنجليزية على النحو التالي: نقاش فقط لأصدقائك على الفور.

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

ببساطة، وهذا هو، يجب أن يكون كائن كما القليل من المعرفة غيرها من الأشياء. وهناك فئة يجب أن تعرف ما لا يقل عن احتياجاتهم إلى جانب فئة أو دعوة، كيف بك الداخلية (إلى جانب أو الاتصال على الطبقة) هو مجمع على حد سواء وأنا لا تمانع، وهذا هو الشيء الخاص بك، وأنا أعرف طريقة العامة التي قدمتها، I يتضرع كثيرا، والآخر لم ولن يهمني.

2، وتحليل القانون

أصدقاء فئات: في ديميتر، لكائن التي تشمل الفئات التالية الأصدقاء:

(1) الكائن الحالي نفسه (هذا)؛

(2) تمرير كائن إلى كائن في الأسلوب الحالي للمعلمة.

(3) الأعضاء الحاليين في الكائن الهدف.

(4) إذا كان الأعضاء الحاليين في الكائن الهدف هو جمع، ثم عناصر المجموعة هي أيضا أصدقاء.

خلق الكائنات (5) من الكائن الحالي.

أي كائن، إذا كانت تفي أحد الشروط المذكورة أعلاه هو "صديق" للكائن الحالي، أو هو "غريب".

3، وقواعد القانون الضيقة واسعة:

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

ضيق ديميتر : اقتران بين الطبقات يمكن الحد، إلا أن طريقة زيادة عدد المشاريع الصغيرة والمنتشرة في كل ركن من أركان النظام في النظام، والتي يمكن تبسيط تصميم نظام محلي، لأن كل المحلي والكائنات الآن لن يكون علاقة مباشرة، ولكن يمكن أيضا أن سبب انخفاض كفاءة الاتصالات بين الوحدات المختلفة للنظام، وذلك لعرقلة التنسيق بين الوحدات المختلفة للنظام.

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

4، والغرض الرئيسي من ديميتر: قال معلومات التحكم الزائد.

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

في الطبقات تصميم الهيكلية، يجب على كل الطبقة محاولة للحد من قدرتها على الوصول إلى المتغيرات عضو وظائف الأعضاء؛

في فئة التصميم، كلما كان ذلك ممكنا، يجب أن تكون مصممة لتغيير نوع فئة.

في إشارة إلى فئات أخرى، ينبغي التقليل من مرجع كائن إلى كائنات أخرى.

5، مثال

ظهور وضع واجهة (الهيكلية)

ديميتر وتصميم أنماط نمط واجهة، ونمط الوسيط

الطبقة النظام، وليس محاولة للتفاعل مع الطبقات الأخرى، مما يقلل من درجة اقتران بين الطبقات، لأنه في النظام الخاص بك، فترة طويلة، قد تحتاج لتعديل هذه الفئات، والعلاقة بين الطبقة والطبقة، قررت التغييرات التعقيد، والمزيد من التفاعل، وكلما يتم تعديل صعوبة، على العكس من ذلك، إذا كان أصغر من أصغر التفاعل، فإنه من الصعب تعديل على سبيل المثال .. فئة الدرجة B التابعة، تعتمد على فئة B C، عند تعديل الفئة لذلك، يجب عليك أن تنظر ما إذا كانت فئة B سوف تتأثر، وتأثير الطبقة B فإنه يؤثر على الطبقة C. إذا كان في هذا الوقت لم تعد تعتمد على الدرجة C الفئة D، ثم، أوه، أنا أعتقد أن هذا التعديل يعاني بعض.

تسعة، Q & A

1، ومبادئ التصميم وجوه المنحى آخر؟

تغيير حزمة.

أقل الجمع بين الإرث متعددة الأغراض.

واجهة لبرمجة، وليس من أجل تحقيق البرمجة؛

المتباعدة التفاعل بين الأجسام التصميم والعمل؛

الطبقة ينبغي أن تضع الموسعة، مغلقة لتعديل (مبدأ مصراع OCP)؛

خلاصة تعتمد، وليس اعتمادا على نوع معين (التبعية عكس مبدأ DIP)؛

وقال صديق مقرب من المبادئ: محادثة مع صديق فقط (الحد الأدنى المعرفة من المبادئ وديميتر)؛

الوصف: كائن إلى كائنات أخرى يجب أن يكون كما فهم قليل من استدعاءات الأسلوب أبقى ضمن حدود، مجرد استدعاء الأسلوب ضمن النطاقات التالية: مكونات الكائن نفسه يعامل (الأصلية الطريقة) الكائن كمعلمة أسلوب الكائن الذي تم تمريره في يخلق هذا الأسلوب أو instantiates أي أجسام.

لا تبدو بالنسبة لي (اتصل بي) وسوف تجد لك (يدعو لك) (مبدأ هوليوود)؛

سبب واحد فقط لتغيير الطبقة الناجمة عن ذلك (مسؤولية واحدة مبدأ SRP)؛

2. هل يمكن ان توضح مبدأ الاستبدال ليب ذلك؟

التعريف الدقيق : إذا S لكل نوع من الكائنات O1، O2 هي كائن من نوع T، مثل أن جميع برامج لT P محددة عندما يتم استبدال جميع الكائنات O1 O2، P لا يغير من سلوك البرنامج، ثم النوع S نوع فرعي من نوع T.

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

  • فرعية قد تنفيذ الفئة الأصل مجردة، ولكن لا يمكن تغطية الفئة الأصل غير مجردة.
  • فئة فرعية يمكن إضافة طريقة فريدة خاصة بهم.
  • عندما أسلوب فئة فرعية الفئة الأصل فوق طاقتها، والشروط المسبقة لعملية (أي المعلمة العملية) معلمات الإدخال من أسلوب فئة الوالدين أكثر استرخاء.
  • عندما فرعية لتنفيذ الفئة الأصل مجردة، طريقة postcondition (أي قيمة الإرجاع) هي أكثر صرامة من الوالدين.

3، تحت أي ظرف من الظروف من شأنه أن ينتهك القانون ديميتر؟ لماذا هذا السؤال؟

ديميتر يوصي "فقط الأصدقاء والحديث، لا التحدث الى الغرباء" من أجل الحد من اقتران بين الطبقات.

4، أعطني مثالا على فتح وإغلاق مبدأ أنماط التصميم في الخط؟

فتح وإغلاق المبدأ يتطلب أن التعليمات البرمجية مفتوحة للتمديد، لكنها أغلقت لتعديل. إضافة رمز جديد يعني أنه إذا كنت ترغب في إضافة ميزة جديدة، يمكنك بسهولة دون تغيير كود وقد تم اختبار الفرضية. هناك العديد من أنماط التصميم ويستند على مبدأ فتح وإغلاق، مثل وضع السياسات، وإذا كنت في حاجة الى سياسة جديدة، تحتاج فقط إلى تنفيذ واجهة، وزيادة مخصصات دون تغيير منطق الأساسية. ومن الأمثلة على ذلك عمل طريقة Collections.sort ()، وهو الوضع القائم على السياسات، واتباع مبدأ الافتتاح والختام، لا تحتاج إلى تعديل طريقة الفرز () ككائن جديد، ما عليك القيام به هو تطبيق واجهة المقارنة الخاصة بك .

5، عند استخدام وزن الذبابة (كمية وضع الطيران)؟

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

قطرات المياه السطحية شاشة 3D تشونغشينغ سرية أكسون 10 برو، وأثر ملك آلة صنع الله،

Jiong التكنولوجيا: هواوي الفقراء، تشاو مجد ويندوز 10 لم يتم تنشيط

الابتكار الجسم الحي الإفراج عنهم، "سيد الثانوية" استراتيجية لتوسيع استخدام الفضاء محطة 5G الحكمة

190624 تساى شو كون استوديو الرومانسية الشائعات: كون مشغول صنع الموسيقى كل يوم ليس ما يكفي من الوقت

الصفحة الاولى الالماني اليوم: رجل تشو Keech رفضت DOTT بايرن اعبين أي ضغط

عالية السرعة تخزين التيار الغربية SN500 NVMe سواقات التعليقات

تم نقل 190624 ET إلى نقطة أن يأتي ووتش: شقيق الرياح الرأسية هواتشن يو خط حلاقة

كامل الإطار مقابلة الانتخابات EOS مع هوانغ ليانغ: وجميلة ومؤثرة تجميد الصورة

AI يسمح الأجهزة إلى الكلام، وهذا هو مستقبل الأمور

2019 أكثر من ثمانية يذكر التكنولوجيات الرئيسية التي تقود التغييرات الصناعة

يبدو فوجي البيئة السريرية INSTAX مصغرة LiPlay مذهلة الضربات

190624 أرجوحة تشو Zhengting جديدة كل يوم، نرى مطار فاتنة