Tôi đang phát triển một API với nhiều phương thức được đặt tên giống hệt nhau chỉ khác nhau ở chữ ký, mà tôi đoán là khá phổ biến. Tất cả chúng đều làm điều tương tự, ngoại trừ việc chúng khởi tạo các giá trị khác nhau theo mặc định nếu người dùng không muốn chỉ định. Như một ví dụ dễ hiểu, hãy xem xét
public interface Forest
{
public Tree addTree();
public Tree addTree(int amountOfLeaves);
public Tree addTree(int amountOfLeaves, Fruit fruitType);
public Tree addTree(int amountOfLeaves, int height);
public Tree addTree(int amountOfLeaves, Fruit fruitType, int height);
}
Hành động thiết yếu được thực hiện bởi tất cả các phương pháp này là giống nhau; một cái cây được trồng trong rừng. Nhiều điều quan trọng mà người dùng API của tôi cần biết về việc thêm cây giữ cho tất cả các phương pháp này.
Tốt nhất, tôi muốn viết một khối Javadoc được sử dụng bởi tất cả các phương pháp:
/**
* Plants a new tree in the forest. Please note that it may take
* up to 30 years for the tree to be fully grown.
*
* @param amountOfLeaves desired amount of leaves. Actual amount of
* leaves at maturity may differ by up to 10%.
* @param fruitType the desired type of fruit to be grown. No warranties
* are given with respect to flavour.
* @param height desired hight in centimeters. Actual hight may differ by
* up to 15%.
*/
Trong trí tưởng tượng của tôi, một công cụ có thể chọn một cách kỳ diệu @params nào áp dụng cho mỗi phương thức và do đó tạo ra các tài liệu tốt cho tất cả các phương thức cùng một lúc.
Với Javadoc, nếu tôi hiểu nó một cách chính xác, tất cả những gì tôi có thể làm về cơ bản là sao chép và dán cùng một khối javadoc năm lần, chỉ với một danh sách tham số hơi khác nhau cho mỗi phương thức. Điều này nghe có vẻ rườm rà đối với tôi, và cũng khó duy trì.
Có đường nào quanh đó không? Một số phần mở rộng cho javadoc có loại hỗ trợ này? Hoặc có một lý do chính đáng tại sao điều này không được hỗ trợ mà tôi đã bỏ lỡ?