আপনার সমাধানে বিশেষত কোনও ভুল নেই।
তবে আমার ব্যক্তিগত পছন্দটি হ'ল যে এই পদ্ধতিগুলি সেগুলি কার্যকর নয়। এবং কেবল যে বস্তুটি তারা বন্ধ রয়েছে তার ইন্টারফেসটিকে জটিল করুন।
void moveCameraTo(double latitude, double longitude)
সত্যিই, কোড প্রক্রিয়া সহজ করে না আমি কোন সমস্যা সহজভাবে কলিং দেখতে moveCameraTo(new LatLng(latitude, longitude));
এটা জায়গায়। এই পদ্ধতিতে আদিম আবেশের গন্ধও রয়েছে।
void moveCameraTo(Location location)
ভাল প্রতিপাদন এটা ঠিক হয়ে যেতে পারে Location.ToLatLng()
পদ্ধতি এবং কলিং moveCameraTo(location.ToLatLng())
।
যদি এটি সি # হয় এবং যদি এই জাতীয় পদ্ধতিগুলি সত্যই প্রয়োজন হয় তবে আমি উদাহরণ পদ্ধতির পরিবর্তে তাদেরকে এক্সটেনশন পদ্ধতি হিসাবে পছন্দ করব। আপনি যদি বিমূর্তিটি দূরে সরিয়ে চেষ্টা করেন এবং এই উদাহরণটিকে ইউনিট-টেস্ট করে থাকেন তবে এক্সটেনশন পদ্ধতির ব্যবহার সত্যই স্পষ্ট হয়ে উঠবে। যেহেতু সহজ রূপান্তরগুলি সহ একাধিক ওভারলোডের পরিবর্তে কেবল একক পদ্ধতি নকল করা আরও সহজ হবে।
আমি মনে করি যে এইভাবে আমি অন্য ক্লাসে ল্যাটল্যাং কী তা জানার দায়িত্বটি মুছে ফেলি, উদাহরণস্বরূপ।
আমি কেন এই সমস্যা হবে তার কোনও কারণ দেখছি না। আপনার কোড রেফারেন্স ক্লাস যতক্ষণ থাকে void moveCameraTo(LatLng latLng)
, ততক্ষণ এটি পরোক্ষভাবে নির্ভর করে LatLng
। এমনকি যদি class শ্রেণিটি কখনও সরাসরি তাত্ক্ষণিক না হয়।
এবং ফাংশনটি কল করার আগে আপনাকে ডেটা প্রস্তুত করার দরকার নেই।
তুমি কী বলতে চাচ্ছ আমি বুঝতে পারছি না। এর অর্থ যদি নতুন উদাহরণ তৈরি করা বা ক্লাসগুলি একে অপর থেকে রূপান্তরিত করা হয় তবে আমি এতে কোনও সমস্যা দেখছি না।
এ সম্পর্কে চিন্তাভাবনা করে, আমি অনুভব করি যে আমি যা বলছি তা নিজেই নেট নেট এর এপিআই ডিজাইন দ্বারা সমর্থিত। Orতিহাসিকভাবে, প্রচুর। নেট ক্লাসগুলি বিভিন্ন পরামিতিগুলির সাথে প্রচুর ওভারলোড এবং অভ্যন্তরে সরল রূপান্তরগুলি গ্রহণ করার পদ্ধতি অনুসরণ করে। তবে এটি ছিল এক্সটেনশন পদ্ধতিগুলির অস্তিত্বের আগে। আরও আধুনিক। নেট ক্লাসগুলি তাদের নিজস্ব এপিআইগুলিতে বেশি হালকা ওজনযুক্ত এবং যদি প্যারামিটার ওভারলোডগুলি নিয়ে কোনও পদ্ধতি থাকে তবে সেগুলি এক্সটেনশন পদ্ধতি হিসাবে সরবরাহ করা হয়। পুরানো উদাহরণ হ'ল এনলগ আইএলগার যা লগতে লেখার জন্য কয়েক ডজন ওভারলোড রয়েছে। এটি নতুন মাইক্রোসফ্টের সাথে তুলনা করুন x এক্সটেনশনগুলি.লগিং.আইএলওগারের সাথে মোট 3 টি পদ্ধতি রয়েছে (এবং আপনি যদি লগিং নিজেই গণনা করেন তবে কেবল 1 টি)। তবে সম্প্রসারণের পদ্ধতি হিসাবে প্রচুর সহায়ক এবং বিভিন্ন প্যারামিটারাইজেশন রয়েছে ।
আমি মনে করি এই উত্তরটি দেখায় যে কিছু ভাষার কাছে এই ভাল মতো নকশা তৈরির সরঞ্জাম থাকবে। আমি বেশি জাভা জানি না, সুতরাং এর সমতুল্যতা আছে কিনা তা আমি নিশ্চিত নই। এমনকি প্লেইন স্ট্যাটিক পদ্ধতি ব্যবহার করাও একটি বিকল্প হতে পারে।