Uygulamamın çeşitli bölümleri arasındaki etkileşimleri tasarlama konusunda tavsiyeye ihtiyacım var


10

NetBeans Platform 7 tabanlı bir Zengin Masaüstü Uygulaması "ana" classe (ler) tasarlamaya çalışıyorum. Bu uygulama HTTP hizmetleri tüketecek ve TCP üzerinden bir "push sistemi" aracılığıyla, mesaj alacak.

  • 3 geliştiriciyiz ve paralel olarak modül geliştirmek istiyoruz
  • Uygulama katmanlı olacaktır (Veri, İşletme, Sunum)
  • Sorumlulukları ayırmak için Sunum Modeli'ni kullanacağız
  • Bazı ayrıntılı veriler (örneğin bir fasulye Kişisi) birkaç ekranla paylaşılır (ve muhtemelen aynı anda birkaç ekranda görüntülenir)
  • ...

Ayrı ekranlar geliştirebiliriz, ancak tüm uygulamayı nasıl düzenleyeceğimizi ve her modül içeriğini nasıl tanımlayacağımızı tam olarak bilmiyoruz.

  1. Peki, tüm uygulamanın içindeki etkileşimleri koordine etmek / yönetmek için herhangi bir öneriniz var mı (bir kalıp / en iyi uygulama / kitap / örnek uygulama)?
  2. Modül içeriğinin nasıl tanımlanacağı hakkında herhangi bir öneriniz var mı?

Teşekkürler!


İnşa etmek istediğimi gösteren küçük bir örnek: Bir Foo Kullanıcı Yönetimi Uygulaması

  1. Uygulamayı başlat
  2. Solda [explorer] bir platform listemiz var (liste yerel bir dosyada saklanıyor)
  3. Üstte yeni bir Platform eklemek için düğmemiz var (sağ tıklama ile de mevcuttur)
  4. Bir platforma çift tıklayarak, uygulama bir HTTP hizmetini çağırır ve kullanıcıların tam listesini alır. Bu liste [editör] 'de görüntülenir (bir JTable'da)
  5. Bir arka plan işlemi başlatılır: TCP bağlantısı aracılığıyla mesajlar alırız
  6. Araç Çubuğundaki bir düğme sayesinde yeni kullanıcı eklemek mümkündür

Uygulama başka bir bilgisayarda başlatılırsa ve kullanıcı aynı platforma bağlıysa, Kullanıcı Listesi dinamik olarak güncellenir (add / remove / status: {offline / online}) (mesajlar sayesinde)

Gelecekte bir Sohbet Modülü sağlanacaktır.

Sorum (başka bir deyişle): her bir modülün içeriğine karar vermek için herhangi bir tavsiye / en iyi uygulama? PM (Sunum Modeli), görünümü / iş ve verileri ayırmanın ve ekranlar oluşturmanın iyi bir yoluysa, PM'ye göre birkaç ekranı bağlamanın en iyi yolu nedir? Sohbet Modülünü geliştirdiğimizi, Kullanıcı Listesi'ne sağ tıklayarak Bağlam menüsüne "Şununla tartışın ..." girişini nasıl ekleyeceğimizi düşünün.


3
Ne istediğini belli değil. Sorunuzu göstermek için küçük bir örnek vermeye ne dersiniz?
Robert Harvey

Geertjan Wielenga'nın büyük yazısı. Tom Wheeler ifadelerinin ifadelerini içerir (NetBeans Dream Team üyesi): java.dzone.com/news/how-to-split-into-modules
Destroyica

Yanıtlar:


5

Gereksiniminiz göz önüne alındığında, çekirdek işleme şeyleriyle başlamak için Komut Deseni'nden yapılmalıdır ve daha sonra istek işlemcileri için Şablon desenlerini kullanabilirsiniz . Ve böyle devam eder. Ana örüntü diye bir şey yoktur. Eğer olsaydı, artık bize ihtiyaç duymayacaklardı.

Fikir, gereksinimlerle gelişmenizi sağlayacak bir tasarıma sahip olmaktır.

Bir temel modül arayüzü oluşturarak işe başladım ve arayüzü herkese ve etrafındaki bazı yardımcı programlara verdim. Herkesin temel modüle dayalı kendi modüllerini uygulamasına izin verin.


3

Ben düşünüyorum Eğer (RESTful ı varsayalım) servisleri tarafından desteklenen oldukça klasik MVC deseni bakıyoruz. Anahtar, hizmet (ler) i kullanıcı arayüzünden ayırmak olacaktır. Bunun nedeni alternatif bir kullanıcı arayüzü tanıtmanız değil, servis arayüzünüzün ne olması gerektiği konusunda netlik vermenizdir.

Bu yüzden getPeoplehizmeti düşünürken , ikincil (Swing olmayan) bir arayüzün hizmetle nasıl etkileşime gireceğini düşündüğünüzden emin olun. Bunu aklınızda tutarsanız, oldukça esnek / ayrıştırılmış bir çözüm bulacaksınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.