Sau khi đọc bài viết của tôi, tôi đã cố gắng thực hiện ý tưởng tiết lộ tiến bộ trong một API C++ tối thiểu, để hiểu cách nó có thể được thực hiện ở quy mô lớn hơn.Tiết lộ lũy tiến trong C++ API
Tiết lộ liên tục đề cập đến ý tưởng "tách" một API thành các danh mục sẽ chỉ được tiết lộ cho người dùng API khi có yêu cầu. Ví dụ, một API có thể được chia thành hai loại: một loại cơ sở là gì (người dùng có thể truy cập theo mặc định) cho các phương thức thường cần thiết và dễ sử dụng và danh mục mở rộng cho các dịch vụ cấp chuyên gia.
Tôi đã tìm thấy chỉ một ví dụ trên web của triển khai như vậy: thư viện db4o (bằng Java), nhưng tôi thực sự không hiểu chiến lược của chúng. Ví dụ, nếu chúng ta nhìn vào ObjectServer, nó được khai báo như một giao diện, giống như lớp mở rộng của nó ExtObjectServer. Sau đó, một lớp thực hiện ObjectServerImpl, kế thừa từ cả hai giao diện này được định nghĩa và tất cả các phương thức từ cả hai giao diện đều được thực hiện ở đó.
này được cho là phép mã như:
public void test() throws IOException {
final String user = "hohohi";
final String password = "hohoho";
ObjectServer server = clientServerFixture().server();
server.grantAccess(user, password);
ObjectContainer con = openClient(user, password);
Assert.isNotNull(con);
con.close();
server.ext().revokeAccess(user); // How does this limit the scope to
// expert level methods only since it
// inherits from ObjectServer?
// ...
});
kiến thức của tôi về Java mà không phải là tốt, nhưng có vẻ như sự hiểu lầm của tôi về cách làm việc này là ở mức độ cao hơn.
Cảm ơn sự giúp đỡ của bạn!
Nếu tôi hiểu bài viết một cách chính xác, Tiết lộ lũy tiến là một kỹ thuật tài liệu, không phải là phương pháp lập trình. Bạn sắp xếp tài liệu thành các phần riêng biệt cho các nội dung phổ biến và nội dung nâng cao. – Barmar
Điều này có thể làm cho câu hỏi phù hợp hơn cho programmers.SE hoặc softwareengineering.SE. – Barmar
@Barmar Cách tôi đọc nó, nó không chỉ là tài liệu: bạn thực sự ủy quyền các hàm "nâng cao" thành một giao diện riêng biệt. – Angew