سؤال

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

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

المحلول

MVC اخترع على من Smalltalk ويمكن القول إن الأصلي <لأ href = "HTTP: //en.wikipedia.org/wiki/Inversion_of_control "يختلط =" نوفولو noreferrer "> عكس إطار مراقبة . في حين أن أكثر خفيفة إلى حد ما من نظرائهم جافا، فإنه لديه المفاهيم الأساسية لنموذج عقد البيانات، وعرض تقديم البيانات في استجابة لأحداث propogated من وحدة تحكم.

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

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

نصائح أخرى

وظائف هم مواطنون من الدرجة الأولى في من Smalltalk، لذلك فمن السهل أن اللجنة الاولمبية الدولية دون إطار.

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

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

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

والسبب الثالث، وربما، هو أنه، حتى من دون إغلاق، و "قلب السيطرة" يجري وصفها ليست مرتبطة بشكل فريد مع الأطر - وجدت نفسها التدفقات في معظم أشكال من التعليمات البرمجية التي تنطوي I / O

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

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

وباختصار، فإن نفس النوع من الأطر موجودة لمن Smalltalk. وصفنا لهم بطريقة مختلفة قليلا هو كل شيء. والفرق هو، على الأقل جزئيا، بسبب وجود واستخدام الإغلاق في من Smalltalk، فيه العديد من بيئات أخرى لا توفر حتى الآن - - لا سيما C ++، C #، وجافا

.

في جاوة يتم إنشاء التبعية عند الكتابة شيء من هذا القبيل

درجة الحرارة

وMyClass32 = this.theThing ()؛

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

في من Smalltalk كنت أكتب   درجة الحرارة: = النفس theThing؛

وسوف التعليمات البرمجية يعمل بغض النظر عن ما عاد بواسطة #getTheThing. التعليمات البرمجية ليست متوقفة على MyClass32 الطبقة يجري حولها. لديك فقط التبعية أن "مؤقت" يجب أن يفهم كل ما الرسائل التي ترسلها إليها.

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

وقال ان هناك نمط DESIGN لدي كثير من الأحيان المتبعة في من Smalltalk: إنشاء-أسلوب فئة مثل MyClass وترجع بعض الطبقة. ليس من الضروري أن يكون اسم 'MyCLass. ويمكن أن يكون واحدا من عدة الطبقات، وتعود فئة مختلفة في الليل. هذا النمط موجود في من Smalltalk MVC، حيث يكون عرض الطبقات طريقة #defaultControllerClass، والتي عادة ما تعريف من الفئات الفرعية.

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