Nome del pattern per una classe che eredita un generico basato su se stesso

0

Mi chiedo se esiste un nome per lo schema di definizione di una classe generica con un argomento di tipo in cui il tipo eredita la classe che definisce.

Ad esempio

public class A<T> where T : A<T>
{
}

Non sono sicuro se c'è persino un nome per questo. Qualsiasi aiuto sarebbe molto apprezzato, grazie.

    
posta ryano.mcc13 09.08.2018 - 03:18
fonte

2 risposte

4

Sì, questo pattern è chiamato Modello di template curiosamente ricorrente (CRTP), almeno in C ++. Alcuni lo chiamano Pattern generico curiosamente ricorrente (CRGP) o semplicemente < em> Tipi generici ricorrenti in java. Il termine indipendente dal linguaggio generale è polimorfismo F-bound .

    
risposta data 09.08.2018 - 12:06
fonte
0

Non esiste alcuna convenzione di denominazione per questo modello.

  • Mantenere un nome astratto come T può andare bene per classi molto piccole o molto astratte.
  • Se il parametro type ha un significato nel dominio aziendale, considera l'utilizzo di quel nome per maggiore chiarezza. Per esempio. se il tuo dominio aziendale ha un concetto Frobnicator , puoi scegliere i nomi class AbstractFrobnicator<Frobnicator> .
  • Puoi anche scegliere un nome che indica che il parametro è una classe derivata, ad es. Foo<Derived> o Foo<Self> . Preferirei questo oltre T per le classi più grandi.
risposta data 09.08.2018 - 07:31
fonte