La mia domanda sarà su come pensi che sarebbe opportuno nominare alcuni metodi in un'interfaccia fluente. Fammi provare a dimostrare il problema.
Considera questo albero delle relazioni:
Unapersonapuòaverecaniegattieuncanepuòaveredelleossa.Piuttostosemplice.
Quellochestocercandodifareècreareun'interfacciafluentespecificaperildominioperdeterminarequalidellerelazionidicuil'utentehabisogno.Èingradodigestirequalsiasiprofonditàdirelazioni.
Hoprogettatol'operazioneinmodosimile(Stacostruendol'alberoassoicaiton,dacuipossodeterminare,cosavuolel'utente):
Come codice (potrebbe essere più leggibile):
personAssoc = person.associate().withCats().and().withDogs().withBones().up().done();
Ma sto cercando di rendere questa parte il più intuitiva possibile, quindi non voglio che i nomi dei metodi a abbiano senso uno dopo l'altro e essere il più vicino possibile alla lingua parlata . Le mie maggiori preoccupazioni sono i seguenti 3 metodi:
-
and()
nella mia lingua preferitaand
è una parola chiave riservata, quindi non posso usarla. Ho cercato sinonimi (together()
,including()
,also()
) ma non sembrano / sembrano giusti (and
significa che aggiungeremo più figli all'associazione genitore). -
up()
ovviamente sta infrangendo qualsiasi tipo di flusso. Con questo nome di metodo, l'intera faccenda è diventata molto più lontana dalla lingua parlata, di quanto volessi (up
significa, non siamo necessari per aggiungere più relazioni al genitore, ma abbiamo finito con quello attuale . Nel codice è uguale aand
). -
done()
viene chiamato una sola volta, al termine delle chiamate al metodo, ma non si adatta ancora all'immagine (done
significa che, letteralmente, non aggiungeremo più associazioni ).
Quello che sto cercando sono altri nomi migliori per i precedenti 3, che:
- Che rendono l'utilizzo dell'interfaccia fluente più vicino alla lingua parlata.
- Per
and
un nome, che è il più lontano possibile da qualsiasi parola chiave della lingua.
Se leggi tutto questo, sentiti libero di lasciarti sfuggire qualche idea, potrebbe aiutarmi molto! Grazie per qualsiasi suggerimento.