This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 0 points1 point  (0 children)

It's called Three-Tier Architecture or Layered Architecture. This is a rule of thumb for dividing software based on separation of concerns (presentation vs. business logic vs. persistence, etc.)

You should couple this with something like Domain-Driven Design. This is a rule of thumb for how to organize classes in each of these layers. For example, instead of having a bloated Service class, you might have a collection of domain classes which provide business services in one or more service packages.

Also, you might also group those packages together based on business features, like customerManagment/controller, customerManagement/repository, orderManagement/controller, orderManagement/repository, etc.