كيف ينبغي تصميم تطبيق Java Swing الذي يركز على قاعدة البيانات؟
-
01-10-2019 - |
سؤال
لقد كنت أكتب تطبيق Java Swing الذي يركز على قاعدة البيانات لفترة من الوقت.
ينتهي واجهة المستخدم الرسومية و Dao-Code في شجرة كبيرة مثل:
JFrame
|
JTabbedPane
|
+--------------------+----------------------+-------------+
| | | |
JPanel1 JPanel2 JPanel3 JPanel4
| | | |
JButtons--JTable1 JTextFields--JButton JTable2 JDialog--JTable3
i! i! i! i!
Model1 Model2 Model3 Model4
| | | |
+------------+-----------+---------+-------------------+
|
DataAccessObject
يحتوي التطبيق على العديد من المشاهدات ، ويحتوي بعضها على JTable لإظهار البيانات ، وبعضها يحتوي على مربع حوار مع نموذج لتحرير البيانات أو إضافة البيانات.
انا املك DataAccessObject
مع JDBC-Connection. أستخدم عدة طرز (يمتد AbstractTableModel
) لتوصيل طرق العرض (النماذج أو الجداول) مع DAO.
في الإصدار الأول ، قمت بتطبيق DAO كفرد ، ثم تعلمت أن هذا هو مضاد للنمط واستخدمت حقن التبعية بدلاً من ذلك ، لذلك أقوم بتهيئة DAO أولاً أولاً ثم حقنها إلى مُنشئ جميع النماذج. ثم أقوم بتهيئة JFRAME وحقن إشارة إلى النماذج الموجودة في المُنشئ في Hole GUI-TREEE.
إن تمرير الإشارة إلى النماذج من خلال شجرة GUI الثقب يبدو أخرقًا للغاية ، لكنني أعلم أن لدي سيطرة جيدة على التبعيات. ولكن هل هناك أي تصميم أفضل يمكنني استخدامه لتطبيقات أرجوحة Java المتمحورة حول قاعدة البيانات مع العديد من وجهات نظر البيانات التي تحتاج إلى نموذج مع اتصال بقاعدة البيانات؟
المحلول
أود أيضًا أن أؤيد تعليق Shakedown. كل شيء عن الطبقات. افصل التعليمات البرمجية الخاصة بك في طبقات/مستويات.
نظرًا لأنك كنت تتحدث عن حقن التبعية ، فإنني أقترح عليك إلقاء نظرة على إطار عمل العميل الغني الربيعي للتعرف على كيفية تصميم/تطوير تطبيقات التأرجح الجيدة.