ช่วยบอกว่าฉันมีแอพเวอร์ชันฟรีและจ่ายเงิน รุ่นที่ต้องชำระเงินเป็นชุดของรุ่นฟรีที่เกี่ยวกับคุณสมบัติที่ผู้ใช้มีความหมายว่ารุ่นที่จ่ายจะมีคุณสมบัติทั้งหมดของแอปฟรีพร้อมกับพิเศษ
มีรูปแบบการสลับความพร้อมใช้งานของคุณสมบัติตามธงที่โหลดเมื่อเริ่มต้น (เช่นฟรี / จ่ายเงิน) หรือไม่
ฉันไม่ชอบความคิดที่มีการติดตามรหัสในทุกที่:
if(isFreeVersion){
// ...
} else {
// ...
}
มี 2 สาขาคอมไพล์แยกต่างหากสำหรับทุกรุ่นไม่ได้ตัวเลือกเพราะมันจะหมายถึงการบำรุงรักษาที่ 2 (หรือมากกว่า) แหล่งที่มาของรหัสที่ดูเหมือนว่าทำไม่ได้ทั่วไปและมีการกล่าวถึงเพิ่มเติมได้ที่นี่: การดูแลรักษาทั้งสองรุ่นซอฟท์แวเฉพาะกิจจากที่เดียวกัน Codebase ในการควบคุมเวอร์ชัน
มีวิธีการทำเช่นนี้ในขณะที่ยังคงมีฐานรหัสเดียวและไม่ทิ้งรหัสด้วยคำสั่งแบบมีเงื่อนไขที่ตรวจสอบการตั้งค่าสถานะฟรี / ชำระเงิน
ฉันแน่ใจว่ามีการพูดคุยกันหลายครั้งก่อนหน้านี้และฉันแน่ใจว่ามีรูปแบบบางอย่างในการเข้าถึงปัญหานี้ แต่ฉันไม่พบมัน
เราใช้ Android / Java
if
ตรวจสอบเพื่อซ่อนการควบคุมสำหรับคุณสมบัติที่ต้องห้ามหรือมีกล่องโต้ตอบป๊อปอัพเมื่อผู้ใช้พยายามทำสิ่งที่เขาไม่ได้รับอนุญาต ฉันหวังว่าจะหาวิธีหลีกเลี่ยงเงื่อนไขหลายอย่างในรหัส