Example #1
0
            public void DesenvolverSistema(IProgramador programador, IEnumerable <Especificacao> specs)
            {
                // Devido à violação do princípio de Liskov, se passarmos um "AnalistaVelhaco" aqui será lançada uma exception
                // pois ele não cumpre funcionalmente o contrato de desenvolvedor, já que lança exceção quando pedem pra ele desenvolver.

                specs
                .ToList()
                .ForEach(spec => programador.Code(spec, new[] { new Coffee() }));
            }
Example #2
0
            public void DesenvolverSistema(IProgramador programador, IEnumerable <Especificacao> specs)
            {
                // Nesse caso como o "AnalistaAntigoProgramadorDelphi" também sabe cumprir a função de desenvolvedor como era esperado,
                // podemos passar a spec e uma xícara de café para ele que ele dá conta de realizar o trabalho, novamente, como era esperado.

                specs
                .ToList()
                .ForEach(spec => programador.Code(spec, new[] { new Coffee() }));
            }