Package structure for a Java project?

前端 未结 7 684
情歌与酒
情歌与酒 2020-12-02 04:01

Whats the best practice for setting up package structures in a Java Web Application?

How would you setup your src, unit test code, etc?

7条回答
  •  一向
    一向 (楼主)
    2020-12-02 04:47

    There are a few existing resources you might check:

    1. Properly Package Your Java Classes
    2. Spring 2.5 Architecture
    3. Java Tutorial - Naming a Package
    4. SUN Naming Conventions

    For what it's worth, my own personal guidelines that I tend to use are as follows:

    1. Start with reverse domain, e.g. "com.mycompany".
    2. Use product name, e.g. "myproduct". In some cases I tend to have common packages that do not belong to a particular product. These would end up categorized according to the functionality of these common classes, e.g. "io", "util", "ui", etc.
    3. After this it becomes more free-form. Usually I group according to project, area of functionality, deployment, etc. For example I might have "project1", "project2", "ui", "client", etc.

    A couple of other points:

    1. It's quite common in projects I've worked on for package names to flow from the design documentation. Usually products are separated into areas of functionality or purpose already.
    2. Don't stress too much about pushing common functionality into higher packages right away. Wait for there to be a need across projects, products, etc., and then refactor.
    3. Watch inter-package dependencies. They're not all bad, but it can signify tight coupling between what might be separate units. There are tools that can help you keep track of this.

提交回复
热议问题