Factory methods provide flexibility in object creation.
A static factory method can return an instance of the object type, allowing control over the instance creation and initialization process. They can also return subtypes or cached instances. For example, `Product.createProduct("Laptop", BigDecimal.valueOf(999.99))` could include additional logic for validation or logging.