سؤال مصنع الكائن - استخدام معلومات استعلام قاعدة البيانات لإنشاء كائنات

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

سؤال

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

هل هناك بعض المزايا للقيام بذلك؟ خاصة في لغة مكتوبة بشكل فضفاض مثل PHP؟

شكرًا

تحرير: هل هذا حيث أحصل على قاعدة بيانات؟ هل هذا ما يفعله orm بشكل أساسي؟

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

المحلول

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

من خلال القيام بذلك والتأكد من عدم الوصول إلى الكائنات الخاصة بك مباشرة إلى قاعدة البيانات ، ولكن بدلاً من ذلك ، استخدم وظائف/كائنات الوصول إلى قاعدة البيانات الخاصة بك ، فأنت تحمي الكود من التغييرات بطريقتين:

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

  • يمكنك التبديل إلى DBMs مختلفة عن طريق تطبيق طبقة قاعدة بيانات جديدة تتبع الواجهة نفسها مثل الأصل. كائناتك الأخرى لن تتطلب تغييرات.

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

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

هذا هو الطريق الذي أتحمله عادةً ، لكنني لا أقوم بأي تطوير PHP ، لذلك لا يمكنني تحديد مدى تطبيقها على تلك اللغة.

نصائح أخرى

ما تصفه هو تطبيق طبقة الوصول إلى البيانات - لا يبدو مثل مثال على نمط طريقة المصنع, ، ولا نمط المصنع التجريدي.

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

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

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

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