├── 01-pra-que-serve-oo.md ├── 02-conhecendo-o-projeto-cotuba.md ├── 03-single-responsibility-principle.md ├── 04-dependency-inversion-principle.md ├── 05-open-closed-principle.md ├── 06-temas-e-plugins.md ├── 07-um-plugin-de-estatisticas.md ├── 08-liskov-substitution-principle.md ├── 09-interface-segregation-principle.md ├── 10-um-pouco-de-imutabilidade-e-encapsulamento.md ├── 11-principios-de-coesao-e-acoplamento-de-modulos.md ├── 12-alem-da-linha-de-comando.md ├── 13-arquitetura-hexagonal.md ├── 14-apendice-modulos-com-o-java-platform-module-system-jpms.md ├── 15-apendice-injecao-de-dependencias-com-spring.md ├── 16-apendice-referencias.md ├── LICENSE.MD ├── README.md ├── assets └── imagens │ ├── cap03-single-responsibility-principle │ ├── cotuba-refatoracao-responsabilidades.png │ ├── refatoracao-renderizador-opcao-1.png │ ├── refatoracao-renderizador-opcao-2.png │ └── separando-aplicacao-do-controller.png │ ├── cap04-dependency-inversion-principle │ ├── camadas-vs-dependencias-invertidas.png │ ├── cliente-abstracao-implementacao.png │ ├── cotuba-instanciando-implementacao.png │ ├── dependencias-cotuba-invertidas-2.png │ ├── dependencias-cotuba-invertidas.png │ ├── dependencias-cotuba.png │ ├── dependencias-entre-pacotes.png │ └── invertendo-dependencias-entre-pacotes.png │ ├── cap05-open-closed-principle │ ├── acao-pos-emissao.png │ ├── dependencias-cotuba-ocp.png │ ├── gerador-ebook.png │ └── notificacao.png │ ├── cap06-temas-e-plugins │ ├── cotuba-chama-renderizador-e-aplicador-tema.png │ ├── cotuba-chamando-plugin.png │ ├── plugin-chamando-cotuba.png │ └── renderizador-chama-aplicador-tema.png │ ├── cap09-interface-segregation-principle │ ├── interfaces-de-dominio-segregadas.png │ └── plugin-de-tema-e-ao-finalizar-geracao.png │ ├── cap11-principios-de-coesao-e-acoplamento-de-modulos │ ├── caracteristicas-de-modulos.png │ ├── dependencias-entre-modulos-cotuba-ui-e-formatos-ebook.png │ ├── dependencias-maven-cotuba-ui-formatos-ebook.png │ ├── invertendo-as-dependencias-entre-modulos-cotuba-ui-e-formatos-ebook-simplificado.png │ ├── invertendo-as-dependencias-entre-modulos-cotuba-ui-e-formatos-ebook.png │ ├── modularizando-cotuba-por-cada-pacote.png │ ├── modularizando-cotuba-ui-e-formatos-ebook.png │ ├── modularizando-cotuba-ui-separada.png │ ├── modulo-totalmente-estavel.png │ └── modulo-totalmente-instavel.png │ ├── cap12-alem-da-linha-de-comando │ ├── detalhes-capitulo.png │ ├── detalhes-livro.png │ ├── livros-cadastrados.png │ └── modulos-cli-web-cotuba-pdf-epub.png │ ├── cap13-arquitetura-hexagonal │ ├── CleanArchitecture.jpg │ ├── ports-and-adapters-cotuba.png │ └── tilbury-fort-essex-uk.jpg │ └── cap14-apendice-modulos-com-o-java-platform-module-system-jpms │ ├── dependencias-entre-modulos-jdk7-b65.png │ └── dependencias-entre-modulos-jdk9.png └── sumario.yaml /01-pra-que-serve-oo.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/01-pra-que-serve-oo.md -------------------------------------------------------------------------------- /02-conhecendo-o-projeto-cotuba.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/02-conhecendo-o-projeto-cotuba.md -------------------------------------------------------------------------------- /03-single-responsibility-principle.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/03-single-responsibility-principle.md -------------------------------------------------------------------------------- /04-dependency-inversion-principle.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/04-dependency-inversion-principle.md -------------------------------------------------------------------------------- /05-open-closed-principle.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/05-open-closed-principle.md -------------------------------------------------------------------------------- /06-temas-e-plugins.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/06-temas-e-plugins.md -------------------------------------------------------------------------------- /07-um-plugin-de-estatisticas.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/07-um-plugin-de-estatisticas.md -------------------------------------------------------------------------------- /08-liskov-substitution-principle.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/08-liskov-substitution-principle.md -------------------------------------------------------------------------------- /09-interface-segregation-principle.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/09-interface-segregation-principle.md -------------------------------------------------------------------------------- /10-um-pouco-de-imutabilidade-e-encapsulamento.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/10-um-pouco-de-imutabilidade-e-encapsulamento.md -------------------------------------------------------------------------------- /11-principios-de-coesao-e-acoplamento-de-modulos.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/11-principios-de-coesao-e-acoplamento-de-modulos.md -------------------------------------------------------------------------------- /12-alem-da-linha-de-comando.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/12-alem-da-linha-de-comando.md -------------------------------------------------------------------------------- /13-arquitetura-hexagonal.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/13-arquitetura-hexagonal.md -------------------------------------------------------------------------------- /14-apendice-modulos-com-o-java-platform-module-system-jpms.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/14-apendice-modulos-com-o-java-platform-module-system-jpms.md -------------------------------------------------------------------------------- /15-apendice-injecao-de-dependencias-com-spring.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/15-apendice-injecao-de-dependencias-com-spring.md -------------------------------------------------------------------------------- /16-apendice-referencias.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/16-apendice-referencias.md -------------------------------------------------------------------------------- /LICENSE.MD: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/LICENSE.MD -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/README.md -------------------------------------------------------------------------------- /assets/imagens/cap03-single-responsibility-principle/cotuba-refatoracao-responsabilidades.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap03-single-responsibility-principle/cotuba-refatoracao-responsabilidades.png -------------------------------------------------------------------------------- /assets/imagens/cap03-single-responsibility-principle/refatoracao-renderizador-opcao-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap03-single-responsibility-principle/refatoracao-renderizador-opcao-1.png -------------------------------------------------------------------------------- /assets/imagens/cap03-single-responsibility-principle/refatoracao-renderizador-opcao-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap03-single-responsibility-principle/refatoracao-renderizador-opcao-2.png -------------------------------------------------------------------------------- /assets/imagens/cap03-single-responsibility-principle/separando-aplicacao-do-controller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap03-single-responsibility-principle/separando-aplicacao-do-controller.png -------------------------------------------------------------------------------- /assets/imagens/cap04-dependency-inversion-principle/camadas-vs-dependencias-invertidas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap04-dependency-inversion-principle/camadas-vs-dependencias-invertidas.png -------------------------------------------------------------------------------- /assets/imagens/cap04-dependency-inversion-principle/cliente-abstracao-implementacao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap04-dependency-inversion-principle/cliente-abstracao-implementacao.png -------------------------------------------------------------------------------- /assets/imagens/cap04-dependency-inversion-principle/cotuba-instanciando-implementacao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap04-dependency-inversion-principle/cotuba-instanciando-implementacao.png -------------------------------------------------------------------------------- /assets/imagens/cap04-dependency-inversion-principle/dependencias-cotuba-invertidas-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap04-dependency-inversion-principle/dependencias-cotuba-invertidas-2.png -------------------------------------------------------------------------------- /assets/imagens/cap04-dependency-inversion-principle/dependencias-cotuba-invertidas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap04-dependency-inversion-principle/dependencias-cotuba-invertidas.png -------------------------------------------------------------------------------- /assets/imagens/cap04-dependency-inversion-principle/dependencias-cotuba.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap04-dependency-inversion-principle/dependencias-cotuba.png -------------------------------------------------------------------------------- /assets/imagens/cap04-dependency-inversion-principle/dependencias-entre-pacotes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap04-dependency-inversion-principle/dependencias-entre-pacotes.png -------------------------------------------------------------------------------- /assets/imagens/cap04-dependency-inversion-principle/invertendo-dependencias-entre-pacotes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap04-dependency-inversion-principle/invertendo-dependencias-entre-pacotes.png -------------------------------------------------------------------------------- /assets/imagens/cap05-open-closed-principle/acao-pos-emissao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap05-open-closed-principle/acao-pos-emissao.png -------------------------------------------------------------------------------- /assets/imagens/cap05-open-closed-principle/dependencias-cotuba-ocp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap05-open-closed-principle/dependencias-cotuba-ocp.png -------------------------------------------------------------------------------- /assets/imagens/cap05-open-closed-principle/gerador-ebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap05-open-closed-principle/gerador-ebook.png -------------------------------------------------------------------------------- /assets/imagens/cap05-open-closed-principle/notificacao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap05-open-closed-principle/notificacao.png -------------------------------------------------------------------------------- /assets/imagens/cap06-temas-e-plugins/cotuba-chama-renderizador-e-aplicador-tema.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap06-temas-e-plugins/cotuba-chama-renderizador-e-aplicador-tema.png -------------------------------------------------------------------------------- /assets/imagens/cap06-temas-e-plugins/cotuba-chamando-plugin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap06-temas-e-plugins/cotuba-chamando-plugin.png -------------------------------------------------------------------------------- /assets/imagens/cap06-temas-e-plugins/plugin-chamando-cotuba.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap06-temas-e-plugins/plugin-chamando-cotuba.png -------------------------------------------------------------------------------- /assets/imagens/cap06-temas-e-plugins/renderizador-chama-aplicador-tema.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap06-temas-e-plugins/renderizador-chama-aplicador-tema.png -------------------------------------------------------------------------------- /assets/imagens/cap09-interface-segregation-principle/interfaces-de-dominio-segregadas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap09-interface-segregation-principle/interfaces-de-dominio-segregadas.png -------------------------------------------------------------------------------- /assets/imagens/cap09-interface-segregation-principle/plugin-de-tema-e-ao-finalizar-geracao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap09-interface-segregation-principle/plugin-de-tema-e-ao-finalizar-geracao.png -------------------------------------------------------------------------------- /assets/imagens/cap11-principios-de-coesao-e-acoplamento-de-modulos/caracteristicas-de-modulos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap11-principios-de-coesao-e-acoplamento-de-modulos/caracteristicas-de-modulos.png -------------------------------------------------------------------------------- /assets/imagens/cap11-principios-de-coesao-e-acoplamento-de-modulos/dependencias-entre-modulos-cotuba-ui-e-formatos-ebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap11-principios-de-coesao-e-acoplamento-de-modulos/dependencias-entre-modulos-cotuba-ui-e-formatos-ebook.png -------------------------------------------------------------------------------- /assets/imagens/cap11-principios-de-coesao-e-acoplamento-de-modulos/dependencias-maven-cotuba-ui-formatos-ebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap11-principios-de-coesao-e-acoplamento-de-modulos/dependencias-maven-cotuba-ui-formatos-ebook.png -------------------------------------------------------------------------------- /assets/imagens/cap11-principios-de-coesao-e-acoplamento-de-modulos/invertendo-as-dependencias-entre-modulos-cotuba-ui-e-formatos-ebook-simplificado.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap11-principios-de-coesao-e-acoplamento-de-modulos/invertendo-as-dependencias-entre-modulos-cotuba-ui-e-formatos-ebook-simplificado.png -------------------------------------------------------------------------------- /assets/imagens/cap11-principios-de-coesao-e-acoplamento-de-modulos/invertendo-as-dependencias-entre-modulos-cotuba-ui-e-formatos-ebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap11-principios-de-coesao-e-acoplamento-de-modulos/invertendo-as-dependencias-entre-modulos-cotuba-ui-e-formatos-ebook.png -------------------------------------------------------------------------------- /assets/imagens/cap11-principios-de-coesao-e-acoplamento-de-modulos/modularizando-cotuba-por-cada-pacote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap11-principios-de-coesao-e-acoplamento-de-modulos/modularizando-cotuba-por-cada-pacote.png -------------------------------------------------------------------------------- /assets/imagens/cap11-principios-de-coesao-e-acoplamento-de-modulos/modularizando-cotuba-ui-e-formatos-ebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap11-principios-de-coesao-e-acoplamento-de-modulos/modularizando-cotuba-ui-e-formatos-ebook.png -------------------------------------------------------------------------------- /assets/imagens/cap11-principios-de-coesao-e-acoplamento-de-modulos/modularizando-cotuba-ui-separada.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap11-principios-de-coesao-e-acoplamento-de-modulos/modularizando-cotuba-ui-separada.png -------------------------------------------------------------------------------- /assets/imagens/cap11-principios-de-coesao-e-acoplamento-de-modulos/modulo-totalmente-estavel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap11-principios-de-coesao-e-acoplamento-de-modulos/modulo-totalmente-estavel.png -------------------------------------------------------------------------------- /assets/imagens/cap11-principios-de-coesao-e-acoplamento-de-modulos/modulo-totalmente-instavel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap11-principios-de-coesao-e-acoplamento-de-modulos/modulo-totalmente-instavel.png -------------------------------------------------------------------------------- /assets/imagens/cap12-alem-da-linha-de-comando/detalhes-capitulo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap12-alem-da-linha-de-comando/detalhes-capitulo.png -------------------------------------------------------------------------------- /assets/imagens/cap12-alem-da-linha-de-comando/detalhes-livro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap12-alem-da-linha-de-comando/detalhes-livro.png -------------------------------------------------------------------------------- /assets/imagens/cap12-alem-da-linha-de-comando/livros-cadastrados.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap12-alem-da-linha-de-comando/livros-cadastrados.png -------------------------------------------------------------------------------- /assets/imagens/cap12-alem-da-linha-de-comando/modulos-cli-web-cotuba-pdf-epub.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap12-alem-da-linha-de-comando/modulos-cli-web-cotuba-pdf-epub.png -------------------------------------------------------------------------------- /assets/imagens/cap13-arquitetura-hexagonal/CleanArchitecture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap13-arquitetura-hexagonal/CleanArchitecture.jpg -------------------------------------------------------------------------------- /assets/imagens/cap13-arquitetura-hexagonal/ports-and-adapters-cotuba.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap13-arquitetura-hexagonal/ports-and-adapters-cotuba.png -------------------------------------------------------------------------------- /assets/imagens/cap13-arquitetura-hexagonal/tilbury-fort-essex-uk.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap13-arquitetura-hexagonal/tilbury-fort-essex-uk.jpg -------------------------------------------------------------------------------- /assets/imagens/cap14-apendice-modulos-com-o-java-platform-module-system-jpms/dependencias-entre-modulos-jdk7-b65.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap14-apendice-modulos-com-o-java-platform-module-system-jpms/dependencias-entre-modulos-jdk7-b65.png -------------------------------------------------------------------------------- /assets/imagens/cap14-apendice-modulos-com-o-java-platform-module-system-jpms/dependencias-entre-modulos-jdk9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/assets/imagens/cap14-apendice-modulos-com-o-java-platform-module-system-jpms/dependencias-entre-modulos-jdk9.png -------------------------------------------------------------------------------- /sumario.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caelum/apostila-oo-avancado-em-java/HEAD/sumario.yaml --------------------------------------------------------------------------------