سؤال

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

أريد أن أتأكد من تحميل جميع أدوات التحكم في الأطفال وجاهزة للذهاب قبل ملءها بالبيانات ولست على دراية بتسلسل خلق مكون Delphi.

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

المحلول

لن ربط ملء البيانات إلى الإنشاء. يمكنك إنشاء إطار بشكل معقول والاحتفاظ به ولكن تغيير المحتوى الذي يعرضه لاحقًا. إذا قمت بالملء في onCreate ثم يجب عليك تحرير وإعادة إنشاء بيانات جديدة. لذلك وجود LoadData() هو نهج أفضل.

اعتمادًا على تعقيد التطبيق وعدد النماذج والإطارات التي لديك ، قد يكون من المفيد أن ترث جميع إطاراتك من إطار أساسي مشترك. يمكنك بعد ذلك تقديم افتراضي LoadData الطريقة في القاعدة والتجاوز في الفئات الفرعية الإطار.

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

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

نصائح أخرى

عادةً ما أختار واحدة من نهجين مختلفين:

  1. مُنشئ تجاوزه يأخذ نوعًا من الكائنات الذي يحتوي على جميع العناصر ، أو يعرف كيفية الحصول عليها (مثل العداد)
  2. خاصية مع جهاز لنفس النوع من الكائن

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

(الآن ، قد يكون هذا هو ما تفعله بالفعل ، لكن اسم "loadData" يجعلني أعتقد أن شهرتك ستعمل في الواقع على تحميل البيانات من نوع من مستودعات التخزين بدلاً من مجرد عرض البيانات التي قام بها أحدهم سابقًا ...)

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