Come posso impaginare questa classe per renderla più facile da usare per gli sviluppatori API?

0

Ho un'applicazione che consente all'utente di inserire una stringa di testo in un documento PDF. Ho tre diversi modi in cui possono farlo:

  1. Utilizza un campo modulo. Quindi hanno quattro proprietà da definire:
    1. Fornisci nome campo
    2. fornire l'istanza del campo
    3. fornisce un offset dell'asse X
    4. fornisce un offset dell'asse Y
  2. Cerca una stringa di testo. Quindi hanno quattro proprietà da definire:
    1. Fornisci una stringa di testo da cercare
    2. fornire l'istanza di quella stringa di testo
    3. fornisce un offset dell'asse X
    4. fornisce un offset dell'asse Y
  3. Definisci coordinate di pagina. Quindi hanno tre proprietà da definire:
    1. Fornisci il numero di pagina
    2. fornisce un offset dell'asse X
    3. fornisce un offset dell'asse Y

Nella mia API, voglio che l'oggetto sia configurato in modo intuitivo in modo che sia chiaro che scelgono uno dei tre diversi metodi e, in base a quello che scelgono, hanno le opzioni per ciascuno.

Nella mia vecchia API, tutte queste opzioni sono raggruppate insieme come una lista di proprietà come questa:

Placement.FormField_FieldName
Placement.FormField_Instance
Placement.SearchText_Text
Placement.SearchText_Instance
Placement.PageCoordinates_PageNumber
Placement.XOffset
Placement.YOffset

Trovo che questo sia un po 'di confusione per lo sviluppatore che utilizza l'API perché non è possibile utilizzare tutte le proprietà insieme.

Utilizzeresti Campo modulo in questo modo:

Placement myPlacement = new Placement();
myPlacement.FormField_FieldName = "MyPdfFormFieldName";
myPlacement.FormField_Instance = ;
myPlacement.XOffset = 0;
myPlacement.YOffset = 0;

O utilizza Ricerca testo in questo modo:

Placement myPlacement = new Placement();
myPlacement.SearchText_Text = "My String Of Text";
myPlacement.FormField_Instance = 1;
myPlacement.XOffset = 0;
myPlacement.YOffset = 0;

O usa Coordinate di pagina in questo modo:

Placement myPlacement = new Placement();
myPlacement.PageCoordinates_PageNumber = 1;
myPlacement.XOffset = 0;
myPlacement.YOffset = 0;

C'è un modo migliore per impostare la classe (o le sottoclassi) per facilitare lo sviluppatore a capire come utilizzare questa funzionalità?

    
posta RichC 21.02.2014 - 03:47
fonte

1 risposta

5

Che ne dici di:

Placement myPlacement = new FormFieldPlacement("MyPdfFormFieldName", instance, 0, 0);
Placement myPlacement = new TextSearchPlacement("My String Of Text", instance, 0, 0);
Placement myPlacement = new CoordinatePlacement(instance, 0, 0);

Assicurati di avere argomenti predefiniti sane, specialmente per gli offset.

    
risposta data 21.02.2014 - 03:56
fonte

Leggi altre domande sui tag