बता दें कि मेरे पास ऐप का एक फ्री और पेड वर्जन है। पेड वर्जन यूजर्स को मिलने वाले फीचर्स के बारे में फ्री वर्जन का सुपरसेट है, मतलब पेड वर्जन में फ्री एप्स के सभी फीचर्स अतिरिक्त होंगे।
क्या एक ध्वज के आधार पर एक उपलब्धता को टॉगल करने के लिए एक पैटर्न है जो स्टार्टअप पर लोड करता है (जैसे निःशुल्क / भुगतान)?
मुझे हर जगह निम्नलिखित कोड ब्लॉक होने का विचार पसंद नहीं है:
if(isFreeVersion){
// ...
} else {
// ...
}
प्रत्येक संस्करण के लिए 2 अलग-अलग गिट शाखाएं होना एक विकल्प नहीं है क्योंकि इसका मतलब होगा 2 (या अधिक) कोड स्रोतों को बनाए रखना, सामान्य रूप से अव्यवहारिक लगता है और यहां अधिक चर्चा की जाती है: संस्करण नियंत्रण में समान कोडबेस से दो अलग सॉफ्टवेयर संस्करण बनाए रखना ।
क्या ऐसा करने का एक तरीका है, जबकि अभी भी एक ही कोड आधार है और कोड को सशर्त बयानों से मुक्त नहीं करना है जो कि मुफ्त / भुगतान किए गए ध्वज की जांच करते हैं?
मुझे यकीन है कि इस पर पहले भी कई बार चर्चा हुई थी और मुझे यकीन है कि इस समस्या से निपटने के लिए कुछ पैटर्न हैं, लेकिन मैं इसे नहीं खोज सकता।
हम Android / Java का उपयोग करते हैं।
if
वर्जित सुविधाओं के नियंत्रण को छिपाने के लिए चेक किया जाता है या जब उपयोगकर्ता वह करने की अनुमति नहीं देता है जो करने की कोशिश करता है, तो पॉपअप संवाद के लिए। मैं कोड में कई शर्तों से बचने का एक तरीका खोजने की उम्मीद कर रहा हूं