আমার একটি মান পরীক্ষণ ফাংশন রয়েছে, অনেকটা ক্রেডিট কার্ড নম্বর যাচাইয়ের মতো, যা স্ট্রিংয়ে পাস হয় এবং মানটি সঠিক বিন্যাসের কিনা তা পরীক্ষা করা দরকার।
যদি এটি সঠিক ফর্ম্যাট হয় তবে এটি সত্য হতে পারে।
যদি এটি সঠিক ফর্ম্যাট না হয় তবে এটি মিথ্যা ফিরতে হবে এবং মানটির মধ্যে কী আছে তাও আমাদের জানান।
প্রশ্নটি হল, এটি অর্জনের সর্বোত্তম উপায় কী?
কয়েকটি সমাধান এখানে:
1. অর্থ বোঝাতে পূর্ণসংখ্যার / এনাম রিটার্ন কোডগুলি ব্যবহার করুন:
String[] returnCodeLookup =
[
"Value contains wrong number of characters, should contain 10 characters",
"Value should end with 1",
"Value should be a multiple of 3"
]
private int valueChecker(String value)
{
/*check value*/
return returnCode;
}
rc = checkValue(valueToBeChecked);
if rc == 0
{
/*continue as normal*/
}
else
{
print("Invalid value format: ") + returnCodeLookup[rc];
}
আমি এই সমাধানটি পছন্দ করি না কারণ এটির কলারের পক্ষে এটি প্রয়োগ করা প্রয়োজন।
২. রিটার্নকোড ক্লাস তৈরি করুন
Class ReturnCode()
{
private boolean success;
private String message;
public boolean getSuccess()
{
return this.success;
}
public String getMessage()
{
return this.message;
}
}
private ReturnCode valueChecker(String value)
{
/*check value*/
return returnCode;
}
rc = checkValue(valueToBeChecked);
if rc.getSuccess()
{
/*continue as normal*/
}
else
{
print("Invalid value format: ") + rc.getMessage();
}
এই সমাধানটি পরিপাটি, তবে মনে হয় ওভারকিল / চাকাটি পুনর্বহাল করা।
৩. ব্যতিক্রম ব্যবহার করুন।
private boolean valueChecker(String value)
{
if int(value)%3 != 0 throw InvalidFormatException("Value should be a multiple of 3";
/*etc*/
return True;
}
try {
rc = checkValue(valueToBeChecked);
}
catch (InvalidFormatException e)
{
print e.toString();
}
আমি এই সমাধানটি ব্যবহার করার জন্য প্রলুব্ধ হয়েছি, তবে আমাকে বলা হয়েছে যে আপনার ব্যবসার যুক্তির জন্য ব্যতিক্রম ব্যবহার করা উচিত নয়।