Skip to content

Java – Class & Method Structure

Size Limits

Element Limit
Class < 300 lines
Method < 30 lines
Parameters <= 4 (use DTO/Builder beyond that)

Field Order

public class UserService {
    // 1. Static fields
    private static final Logger log = LoggerFactory.getLogger(UserService.class);
    // 2. Instance fields
    private final UserRepository userRepository;
    // 3. Constructor
    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }
    // 4. Public methods
    // 5. Private methods
}

Dependency Injection

// Correct - Constructor injection
public class OrderService {
    private final PaymentService paymentService;
    public OrderService(PaymentService paymentService) {
        this.paymentService = paymentService;
    }
}

// Incorrect - Field injection, never use
// @Autowired
// private PaymentService paymentService;