كيف ينبغي تصميم تطبيق Java Swing الذي يركز على قاعدة البيانات؟

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

سؤال

لقد كنت أكتب تطبيق 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. كل شيء عن الطبقات. افصل التعليمات البرمجية الخاصة بك في طبقات/مستويات.

نظرًا لأنك كنت تتحدث عن حقن التبعية ، فإنني أقترح عليك إلقاء نظرة على إطار عمل العميل الغني الربيعي للتعرف على كيفية تصميم/تطوير تطبيقات التأرجح الجيدة.

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