public Grupo(long numero, double posicao, Grupo grupoFilho) { if (numero < 0) { throw new ArgumentOutOfRangeException(NUMERO_NEGATIVO); } else { this.numero = numero; this.posicao = posicao; this.grupoFilho = grupoFilho; double posicaoDigito = 1; Digito digito = null; do { switch ((posicaoDigito - 1) % 3) { case 0: digito = new DigitoUnidade(numero % 10, posicaoDigito, digito); break; case 1: digito = new DigitoDezena(numero % 10, posicaoDigito, digito); break; case 2: digito = new DigitoCentena(numero % 10, posicaoDigito, digito); break; } posicaoDigito++; numero /= 10; } while (numero > 0); this.digito = digito; } }
public Digito(long numero, double posicao, Digito digitoFilho) { this.numero = numero; this.posicao = posicao; this.digitoFilho = digitoFilho; }
public DigitoUnidade(long numero, double posicao, Digito digitoFilho) : base(numero, posicao, digitoFilho) { }
public DigitoDezena(long numero, double posicao, Digito digitoFilho) : base(numero, posicao, digitoFilho) { }