I have an application that allows the user to place a string of text into a PDF document.  I have three different ways that they can do this:Use a Form Field. Then they have four properties to define:Provide field nameprovide instance of the fieldprovide an X-axis Offsetprovide a Y-axis Offset  Search for a string of text. Then they have four properties to define:Provide string of text to search forprovide instance of that string of textprovide an X-axis Offsetprovide a Y-axis Offset  Define Page Coordinates. Then they have three properties to define:Provide page number provide an X-axis Offsetprovide a Y-axis OffsetIn my API, I want the object to be setup intuitively so that it is clear they are choose one of the three different methods and then whichever one they choose, they have the options for each.In my old API, all of those options are grouped together as a list of properties like this:Placement.FormField_FieldNamePlacement.FormField_InstancePlacement.SearchText_TextPlacement.SearchText_InstancePlacement.PageCoordinates_PageNumberPlacement.XOffsetPlacement.YOffsetI find this to be a little confusing for the developer using the API because you could never use all of the properties together.  You would either use Form Field like this:Placement myPlacement = new Placement();myPlacement.FormField_FieldName = MyPdfFormFieldName;myPlacement.FormField_Instance = ;myPlacement.XOffset = 0;myPlacement.YOffset = 0;Or use Text Search like this:Placement myPlacement = new Placement();myPlacement.SearchText_Text = My String Of Text;myPlacement.FormField_Instance = 1;myPlacement.XOffset = 0;myPlacement.YOffset = 0;Or use Page Coordinates like this:Placement myPlacement = new Placement();myPlacement.PageCoordinates_PageNumber = 1;myPlacement.XOffset = 0;myPlacement.YOffset = 0;Is there a better way to setup the class (or sub classes) to make it easier for the developer to understand how to use this functionality?
How can I layout this class to make it easier to use for API developers?
c#;class design