আমরা জ্যাক্সেনের জন্য একটি অ্যাডাপ্টার (জাভার জন্য একটি এক্সপথ গ্রন্থাগার) বাস্তবায়ন করছি যা আমাদের অ্যাপ্লিকেশনটির ডেটা মডেল অ্যাক্সেস করতে এক্সপথ ব্যবহার করতে দেয়।
ক্লাসগুলি মানচিত্রের স্ট্রিংগুলি (জ্যাক্সেন থেকে আমাদের কাছে প্রেরণ করা হয়েছে) আমাদের ডেটা মডেলের উপাদানগুলিতে প্রয়োগ করে এটি করা হয়। আমরা অনুমান করি যে আমাদের মোট 1000 টিরও বেশি স্ট্রিং তুলনা সহ প্রায় 100 টি ক্লাসের প্রয়োজন হবে।
আমি মনে করি যে এটি করার সর্বোত্তম উপায়টি যদি সহজভাবে / অন্যথায় প্রতিটি স্ট্রিংকে ধ্রুবক হিসাবে সংজ্ঞায়িত না করে কোডে সরাসরি স্ট্রিং দিয়ে লেখা থাকে। উদাহরণ স্বরূপ:
public Object getNode(String name) {
if ("name".equals(name)) {
return contact.getFullName();
} else if ("title".equals(name)) {
return contact.getTitle();
} else if ("first_name".equals(name)) {
return contact.getFirstName();
} else if ("last_name".equals(name)) {
return contact.getLastName();
...
তবে আমাকে সর্বদা শেখানো হয়েছিল যে আমাদের স্ট্রিংয়ের মানগুলি সরাসরি কোডে এম্বেড করা উচিত নয়, পরিবর্তে স্ট্রিং ধ্রুবক তৈরি করা উচিত। এটি দেখতে এরকম কিছু দেখাবে:
private static final String NAME = "name";
private static final String TITLE = "title";
private static final String FIRST_NAME = "first_name";
private static final String LAST_NAME = "last_name";
public Object getNode(String name) {
if (NAME.equals(name)) {
return contact.getFullName();
} else if (TITLE.equals(name)) {
return contact.getTitle();
} else if (FIRST_NAME.equals(name)) {
return contact.getFirstName();
} else if (LAST_NAME.equals(name)) {
return contact.getLastName();
...
এই ক্ষেত্রে আমি এটি একটি খারাপ ধারণা বলে মনে করি। ধ্রুবকটি কেবল একবারে getNode()
পদ্ধতিতে ব্যবহৃত হবে । স্ট্রিংগুলি সরাসরি ব্যবহার করা ধ্রুবকগুলি ব্যবহার করার মতো পড়া এবং বুঝতে পারা সহজ, এবং আমাদের কমপক্ষে এক হাজার লাইনের কোড লেখা বাঁচায়।
সুতরাং একক ব্যবহারের জন্য স্ট্রিং ধ্রুবককে সংজ্ঞায়িত করার কোনও কারণ আছে? না সরাসরি স্ট্রিং ব্যবহার করা গ্রহণযোগ্য?
গীত। পরিবর্তে কেউ এনাম ব্যবহারের পরামর্শ দেওয়ার আগে, আমরা প্রোটোটাইপ করেছিলাম তবে এনাম রূপান্তরটি সাধারণ স্ট্রিং তুলনার চেয়ে 15 গুণ কম ধীর তাই এটি বিবেচনা করা হচ্ছে না।
উপসংহার: নীচের উত্তরগুলি কেবল স্ট্রিং ধ্রুবকগুলির বাইরে এই প্রশ্নের ক্ষেত্রকে প্রসারিত করেছিল, সুতরাং আমার দুটি সিদ্ধান্ত রয়েছে:
- এই দৃশ্যে স্ট্রিং ধ্রুবকের চেয়ে সরাসরি স্ট্রিংগুলি ব্যবহার করা ঠিক আছে, তবে
- স্ট্রিং ব্যবহার একেবারেই এড়াতে হবে এমন উপায় রয়েছে যা আরও ভাল হতে পারে।
সুতরাং আমি চেষ্টা করতে যাচ্ছি মোড়ক প্রযুক্তি যা সম্পূর্ণরূপে স্ট্রিংগুলি এড়ায়। দুর্ভাগ্যক্রমে আমরা স্ট্রিং সুইচ স্টেটমেন্টটি ব্যবহার করতে পারি না কারণ আমরা এখনও জাভা 7 এ নেই। শেষ পর্যন্ত, যদিও আমি মনে করি আমাদের জন্য সর্বোত্তম উত্তর হ'ল প্রতিটি কৌশল চেষ্টা করে এর কার্যকারিতা মূল্যায়ন করা। বাস্তবতাটি হ'ল যদি কোনও কৌশলটি স্পষ্টভাবে দ্রুত হয় তবে আমরা সম্ভবত এটির সৌন্দর্য বা কনভেনশন মেনে চলার বাইরে এটি বেছে নেব।
switch
লেবেল হিসাবে অনুমতি দেয় । if
ক্যাসকেডের পরিবর্তে একটি সুইচ ব্যবহার করুন ।