Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make a desktop application modular?

How do you make a Java desktop application modular? How should the modules be classified?

like image 770
setzamora Avatar asked May 06 '09 08:05

setzamora


1 Answers

As a design goal, modularity means that you want to have an application composed of separate parts (modules) where each part has its area of responsibility and contains all classes concerned with that area (high cohesion), and communication between those parts happens through narrow, well-defined and -documented interfaces (loose coupling).

You achieve this by planning your design beforehand and adjusting those planse and refactoring the code constantly during implementation.

It's useful to make a difference between technical modules such as GUI, network communication or DB access (which often form layers, though these may be sub-divided into several modules), and domain modules that contain the application-specific logic and often don't form layers.

like image 55
Michael Borgwardt Avatar answered Sep 30 '22 20:09

Michael Borgwardt