Hi Sumit,
I would separate the test case writers from the test developers. Don't let them work on the element mapping if they don't understand how the search strategies work. I recommend also you use the CSS selector or jQuery. It is faster than XPath.
You can get rid of all @FindBy() annotation (functional interface) because you want to pass/change the path of the element based on a passed value.
Based on the example you gave, I would implement something like this:
// Set the template path with a &objectID& variable.
String ddl_line_of_business = "//td[contains(., '&objectID&')]/following-sibling::td//select";
// When you get a passed objectID "objectID"('Line of Business') value, replace the "&objectID&" variable with the passed value "objectID".
// Create a method to handle the following code.
// The red one is a passed value to the method. The blue one is your local variable
this.ddl_line_of_business = ddl_line_of_business.replaceAll("&objectID&",objectID);
//Then get the desired element using jQuery $()
WebElementFacade desired_ ddl_line_of_business = $(this.ddl_line_of_business);
// Now you can operate on the desired_ ddl_line_of_business element as a WebElementFacade element.