আমি আমার সমস্যার আরও ভাল সমাধান বের করতে পারি না। আমার কাছে একটি ভিউ কন্ট্রোলার রয়েছে যা উপাদানগুলির একটি তালিকা উপস্থাপন করে। এই উপাদানগুলি এমন মডেল যা বি, সি, ডি ইত্যাদি ইত্যাদির উদাহরণ হতে পারে এবং এ থেকে উত্তরাধিকার সূত্রে প্রাপ্ত হতে পারে So সুতরাং সেই দৃশ্যের নিয়ামকটিতে প্রতিটি আইটেমটি অ্যাপ্লিকেশনের একটি পৃথক স্ক্রিনে যেতে হবে এবং যখন ব্যবহারকারী তাদের মধ্যে একটি নির্বাচন করে তখন কিছু তথ্য পাস করতে হবে । আমার মনে যে দুটি বিকল্প আসে তা হ'ল (দয়া করে সিনট্যাক্সটিকে উপেক্ষা করুন, এটি কোনও নির্দিষ্ট ভাষা নয়)
1) স্যুইচ (আমি জানি যে সফল হয়)
//inside the view controller
void onClickItem(int index) {
A a = items.get(index);
switch(a.type) {
case b:
B b = (B)a;
go to screen X;
x.v1 = b.v1; // fill X with b data
x.v2 = b.v2;
case c:
go to screen Y;
etc...
}
}
2) পলিমারফিজম
//inside the view controller
void onClickItem(int index) {
A a = items.get(index);
Screen s = new (a.getDestinationScreen()); //ignore the syntax
s.v1 = a.v1; // fill s with information about A
s.v2 = a.v2;
show(s);
}
//inside B
Class getDestinationScreen(void) {
return Class(X);
}
//inside C
Class getDestinationScreen(void) {
return Class(Y);
}
সমাধান 2 এর সাথে আমার সমস্যাটি হ'ল যেহেতু বি, সি, ডি, ইত্যাদি মডেল, তাই তাদের সম্পর্কিত বিষয়গুলি সম্পর্কে জানা উচিত নয়। নাকি সে ক্ষেত্রে তাদের উচিত?