CODESAMPLE
N-tier - Java
The N-tier pattern organizes an application into distinct layers, each with a specific responsibility. This separation improves maintainability, testability, and scalability. A typical N-tier architecture includes a Presentation Tier (UI), a Business Logic Tier (application logic), and a Data Access Tier (database interaction). This example demonstrates a simple 3-tier structure. The Main class represents the presentation tier, calling methods from the UserService (business logic) which in turn uses UserRepository (data access). This adheres to Java’s object-oriented principles by encapsulating concerns within classes and using interfaces for loose coupling.
// UserRepository.java - Data Access Tier
interface UserRepository {
User getUserById(int id);
}
class InMemoryUserRepository implements UserRepository {
private final User user = new User(1, "John Doe");
@Override
public User getUserById(int id) {
if (id == user.getId()) {
return user;
}
return null;
}
}
// UserService.java - Business Logic Tier
class UserService {
private final UserRepository userRepository;
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
public User getUser(int id) {
return userRepository.getUserById(id);
}
}
// User.java - Data Model
record User(int id, String name) {}
// Main.java - Presentation Tier
public class Main {
public static void main(String[] args) {
UserRepository userRepository = new InMemoryUserRepository();
UserService userService = new UserService(userRepository);
User user = userService.getUser(1);
if (user != null) {
System.out.println("User ID: " + user.id() + ", Name: " + user.name());
} else {
System.out.println("User not found.");
}
}
}