ما هي مزايا هذا النموذج على أساس OO أكثر من فئة على أساس OO?

StackOverflow https://stackoverflow.com/questions/879061

سؤال

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

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

وجدت الكتاب الذي يحتوي على الأبحاث المنشورة: نموذج البرمجة على أساس:مفاهيم لغات وتطبيقات

هل قرأ أحدكم هذا ؟

--

إذا أعطى فضله عن الجواب الذي أعطاني أكثر.لا يزال, أنا لست راضيا.كنت أود أن أسمع أكثر من ذلك بكثير techical إجابات.ربما لم أشرح نفسي جيدا.

هل كانت مفيدة؟

المحلول

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

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

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

نصائح أخرى

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

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

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

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

وأنا لا أعرف الأسباب الحقيقية لهذا، ولكن هنا أسبابي

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

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

وكان لهذا السؤال لي مفتون فعدت وقراءة بعض الأوراق الأصلية على مفهوم. يبدو أنها بدأت في منتصف 1980s في العالم من Smalltalk لكنه أصبح في النهاية واحدة من مديري المدارس المؤسسين ل الذاتي . في وقت لاحق من ذلك بكثير كما اعتمدت جافا سكريبت ذلك.

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

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

واذا كانت مهتمة، يمكنك أن تبدأ مع هذه الورقة عن النفس.

http://en.wikipedia.org/wiki/Prototype-based_programming#Criticism يفسر ذلك بشكل جيد جدا على ما أعتقد.

أنا حقا لا أريد أن أكتب مقالا آخر عن prototypal الميراث مرة أخرى لذلك أنا فقط سوف تصل بك إلى مقالاتي السابقة.فتذكروا, فهي حقا طويلة ولكن تستحق القراءة:

  1. فوائد prototypal الميراث الكلاسيكية ؟
  2. لماذا Prototypal مسائل الإرث

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

.

ومقتبسا مقولة واحدة:

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top