هل تعرف أي أنماط لبرمجة واجهة المستخدم الرسومية؟(ليست أنماطًا في تصميم واجهات المستخدم الرسومية)

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

  •  08-06-2019
  •  | 
  •  

سؤال

أنا أبحث عن الأنماط التي تتعلق بترميز أجزاء من واجهة المستخدم الرسومية. لا عالمي مثل MVC, أنا على دراية تامة بها، ولكن الأنماط والأفكار الجيدة وأفضل الممارسات المتعلقة بالضوابط والمدخلات الفردية.

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

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

المحلول

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

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

لدي أورايلي رئيس أنماط التصميم الأول و الملصق, ، والتي وجدت أنها لا تقدر بثمن!

المكونات وقح:تستخدم هذه الروابط معرف الشركاء الخاص بي.

نصائح أخرى

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

  • مديرو تخطيط المراقبين و
  • مكونات نمط الاستراتيجية،
  • الحاويات والنمط المركب
  • أشرطة التمرير ونمط الديكور

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

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

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

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

ربما كنت تبحث عن شيء مثل "MouseTrap" الذي رأيته في بعض المقالات حول codeproject (ابحث عن منصة واجهة المستخدم)؟

لقد وجدت أيضًا هذه السلسلة مفيدة جدًا http://codebetter.com/jeremymiller/2007/07/26/the-build-your-own-cab-series-table-of-contents/ حيث يمكنك إلقاء نظرة على وحدات التحكم المضمنة وما إلى ذلك.

ميكا.

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

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