Hãy nói rằng tôi có một phiên bản miễn phí và trả phí của ứng dụng. Phiên bản trả phí là một siêu phiên bản miễn phí liên quan đến các tính năng có sẵn cho người dùng, có nghĩa là phiên bản trả phí sẽ có tất cả các tính năng của ứng dụng miễn phí cộng thêm.
Có một mẫu để chuyển đổi tính khả dụng dựa trên cờ tải khi khởi động (ví dụ: miễn phí / trả phí) không?
Tôi không thích ý tưởng có các khối mã theo sau ở mọi nơi:
if(isFreeVersion){
// ...
} else {
// ...
}
Có 2 nhánh git riêng cho mỗi phiên bản không phải là một tùy chọn vì điều đó có nghĩa là duy trì 2 (hoặc nhiều hơn) nguồn mã, nói chung có vẻ không thực tế và được thảo luận thêm ở đây: Duy trì hai phiên bản phần mềm riêng biệt từ cùng một Codebase trong Kiểm soát phiên bản .
Có cách nào để làm điều này không, trong khi vẫn có một cơ sở mã duy nhất và không xả rác mã với các câu lệnh có điều kiện kiểm tra cờ miễn phí / trả phí?
Tôi chắc chắn rằng điều này đã được thảo luận nhiều lần trước đây và tôi chắc chắn có một số mô hình để tiếp cận vấn đề này, nhưng tôi không thể tìm thấy nó.
Chúng tôi sử dụng Android / Java.
if
kiểm tra để ẩn các điều khiển cho các tính năng bị cấm hoặc có hộp thoại bật lên khi người dùng cố gắng làm những gì anh ta không được phép. Tôi hy vọng tìm ra cách để tránh nhiều điều kiện trong mã