Você está na página 1de 14

apndice 2: bem-vindo Objetolndia

Elogios para Use a Cabea AePOO

contedo

O livro Use a Cabea AePOO uma nova forma de examinarmos o assunto orientao a objetos. O que diferencia este livro o seu foco no aprendizado. H muitos livros no mercado que passam um monte de tempo dizendo a voc o porqu, mas na verdade no permitem que o profissional comece a trabalhar em um projeto. Esses livros so muito interessantes, mas no so muito prticos. Eu acredito piamente que o futuro da prtica de desenvolvimento de software ir se concentrar no profissional. Os autores tornaram o contedo da orientao a objetos acessvel e utilizvel para o profissional. Ivar Jacobson, Ivar Jacobson Consulting. Eu acabei de ler Use a Cabea e amei! O livro consegue comunicar os pontos essenciais da anlise e do projeto da orientao a objetos com UML e usa casos, e at mesmo vrias palestras, sobre o bom projeto de software, tudo isso de uma forma rpida e fcil de entender. O que eu mais gostei neste livro foi seu foco na razo pela qual usamos a AePOO para escrever programas fantsticos! Ao definir o que um software fantstico e mostrar como cada etapa do processo de AePOO leva voc em direo a esse objetivo, ele ensina at mesmo ao programador Java mais enjoado porque a AePOO importante. Este um grande primeiro livro sobre projeto para qualquer um que no esteja familiarizado com Java, ou at mesmo para aqueles que so programadores Java por um tempo, mas que morrem de medo de livros enormes sobre anlise e projeto da orientao a objetos. Kyle Brown, engenheiro reconhecido da IBM. Finalmente um livro sobre AePOO que reconhece que UML no apenas uma notao e que o que importa no desenvolvimento de software parar para pensar nos problemas. Pete McBreen, autor, Software Craftsmanship. Este livro faz um bom trabalho de captura do estilo de escrita divertido e visual da srie Use a Cabea. Mas atrs das figuras engraadas e das fontes enlouquecidas, h uma apresentao sria, inteligente e extremamente bem feita da anlise e projeto da orientao a objetos. Este livro possui uma opinio forte sobre como os programas devem ser projetados e a comunica com eficincia. Eu adoro a forma como ele usa exemplos prticos para mostrar ao leitor os estgios do processo do projeto. Enquanto lia o livro, me senti como se estivesse olhando sobre o ombro de um projetista experiente, que estava me explicando quais so os assuntos importantes em cada etapa e porqu. Edward Sciore, professor adjunto do Computer Science Department no Boston College. Este um livro bem projetado que entrega o que promete aos seus leitores: como analisar, projetar e escrever software orientado a objetos. Seu contedo flui sem esforos do uso de casos para a captura de requisitos de anlise, projeto, implementao, teste e repetio. Cada etapa do desenvolvimento de software orientado a objetos apresentada de acordo com os princpios da engenharia de software. Os exemplos so claros e ilustrativos. Este um livro slido e agradvel sobre o desenvolvimento de software orientado a objetos. Dung Zung Nguyen, conferencista da Rice University.

Elogios para outros livros da srie Use a Cabea escritos pelos autores
Quando chegamos em casa depois de um dia de 10 horas de trabalho em programao, quem tem vontade de mergulhar em outra nova faceta de tecnologia emergente? Se um desenvolvedor vai investir seu tempo livre no desenvolvimento de uma carreira orientada por ele mesmo, isso no deve ser pelo menos agradvel? A julgar pelo contedo do lanamento da OReilly, Use a Cabea Ajax, a resposta sim... Use a Cabea Ajax a plataforma de lanamento mais divertida do mundo das aplicaes web do Ajax; vale o investimento em tempo e em dinheiro. Barry Hawkins, Slashdot.org. Ao comear por conceitos e exemplos simples, o livro leva suavemente o leitor do incio humilde para (no final do livro) a criao confortvel de sites baseados em Ajax... , provavelmente, o melhor livro de Ajax destinado a web projetores. Stefan Mischook, Killersites.com. Usando o estilo irreverente comum da srie Use a Cabea, este livro comea pelo bsico e o apresenta a tudo o que voc precisa conhecer para escrever o JavaScript que enviar solicitaes para o servidor, e atualizar a pgina com os resultados quando eles forem devolvidos... Uma das melhores coisas deste livro (alm das explicaes excelentes sobre como o cdigo funciona) que ele tambm examina os problemas de segurana... Se voc aprender Ajax neste livro, muito pouco provvel que esquea alguma coisa do que aprendeu. Stephen Chapman, JavaScript.About.com. Use a Cabea Ajax o livro certo se voc quiser desmistificar todo o falatrio e aprender a fazer seus aplicativos web surpreenderem... Seus usurios vo vener-lo por isso! Kristin Stromberg, Aguirre International. Se voc conhece um pouco de HTML, algo de CSS, um pouco de JavaScript e alguma coisa de PHP, mas est surpreso com todo o bafaf que cerca o Ajax, este o livro certo... Voc ter um aprendizado a todo vapor com Use a Cabea Ajax. Quando terminar o livro, todas aquelas tecnologias para web que parecem no se ajustar em sua cabea sero colocadas em seus lugares e voc ter o Poder Ajax! Voc saber os segredos por trs de algumas das aplicaes web mais populares na Internet. Voc impressionar seus amigos e colegas de trabalho com o seu conhecimento de como os mapas interativos e os formulrios na web realmente funcionam. Elisabeth Freeman, diretora de tecnologia do The Walt Disney Internet Group, co-autora de Use a Cabea Padres de Projeto e de Use a Cabea HTML com CSS & XHTML.

este voc est aqui um novo captulo

contedo

Este livro para quem considerou oAjax muito avanado. Use a CabeaAjax coloca experincias dinmicas e interessantes ao alcance de todos os desenvolvedores da Web. Jesse James Garrett, da Adaptive Path. Isso alimento para meu crebro, no consigo me cansar. Pauline McNamara, do Center for New Technologies and Education da Fribourg University, Sua.

Elogios para outros livros da srie Use a Cabea


Eu e& Use a Cabea HTML com CSS & XHTML ele ensina a voc tudo o que voc precisa aprender de uma forma muito divertida! Sally Applin, projetor de interfaces e grande artista, http://sally.com. Minha esposa roubou o livro. Ela nunca fez nada em projeto para web, portanto precisava de um livro como HTML com CSS & XHTML para que a levasse do incio ao fim. Ela agora tem uma lista de web sites que deseja criar para as aulas de nosso filho, nossa famlia... Se eu tiver sorte, terei o livro de volta quando ela terminar. David Kaminsky, inventor master da IBM. O Use a Cabea HTML com CSS & XHTML dos Freemans o livro mais divertido para se aprender a criar uma grande pgina web. Ele no cobre apenas tudo o que voc precisa saber sobre HTML, CSS e XHTML, mas tambm se sobressai ao explicar tudo em termos leigos com muitos e timos exemplos. Achei o livro realmente agradvel de ler e aprendi algumas coisas novas! Newton Lee, editor-chefe da ACM Computers in Entertainment. Escrito pelo incrvel pessoal de Use a Cabea Java, este livro utiliza todos os truques imaginveis para ajud-lo a entender e gravar. E no apenas um monte de figuras: figuras humanas, que tendem a interessar outros humanos. Surpresas por toda parte. Estrias, porque os humanos adoram a narrativa (estrias sobre pizza e chocolate. Preciso dizer mais?) Alm de tudo isso, muito engraado. Bill Camarda, READ ONLY. A clareza, o humor e as substanciais doses de inteligncia deste livro o tornam o tipo que ajuda at mesmo no-programadores a pensar bem sobre como solucionar problemas. Cory Doctorow, co-editor de Boing-Boing e autor de Down and Out in the Magic Kingdom e Someone Comes to Town, Someone Leaves Town. Sinto como se toneladas de livros tivessem sido tiradas de cima da minha cabea. Ward Cunningham, inventor do Wiki e fundador do Hillside Group. Eu literalmente amei este livro. Para falar a verdade, eu o beijei na frente da minha esposa. Satish Kumar.

ii

Apndice 2

contedo

Use a Cabea Anlise e Projeto Orientado ao Objeto


No seria maravilhoso se houvesse um livro sobre anlise e projeto que fosse mais divertido do que ir a uma reunio sobre benefcios do RH? Mas provavelmente isso s uma fantasia...

Brett McLaughlin Gary Pollice David West

voc est aqui

iii

contedo

Troca de requisitos

Eu te amo, voc perfeito... Mas eu quero que voc mude


Voc acha que conseguiu fazer tudo o que o cliente queria? No to fcil assim... Voc conversou com o cliente, coletou os requisitos, escreveu seus casos de uso e entregou uma aplicao fantstica. hora de um drinque relaxante, certo? Certo... At que o cliente decide que o que ele realmente queria era algo diferente do que foi dito a voc. Eles amaram o que voc fez, mas na verdade isso no mais o suficiente. No mundo real, os requisitos esto sempre mudando, e voc quem deve conviver com essas alteraes e manter seu cliente satisfeito. Voc um heri! Voc um perdedor! A nica constante da anlise e projeto de software Caminho original? Caminho alternativo? Quem pode saber? Os casos de uso devem fazer sentido para voc Do comeo ao fim: uma nica situao Confisses de um caminho alternativo Concluso da lista de requisitos Duplicar cdigo uma m idia Test drive final Escreva seu prprio princpio de projeto Caixa de ferramentas da AePOO 78 79 81 86 87 88 90 92 97 98 99 99

public void pressButton() { System.out.println(Pressionando o boto do controle remoto...); if (door.isOpen()) { door.close(); } else { door.open(); final Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run() { door.close(); timer.cancel(); } }, 5000); } } Voc se lembra? Esse cronmetro aguarda 5 segundos e ento envia uma solicitao para que a porta feche.

class Remote { press Button() }

Remote.java

xii

Apndice 2

contedo

Anlise

Leve seu software para o mundo real hora da graduao em aplicaes do mundo real. Sua aplicao precisa fazer muito mais do que funcionar em sua prpria mquina de desenvolvimento pessoal, que est finamente ajustada e perfeitamente configurada; suas aplicaes precisam funcionar quando pessoas reais as utilizam. Este captulo fala sobre garantir que o seu software funcione em um contexto de mundo real. Voc aprender como a anlise textual pode pegar esse caso de uso em que voc est trabalhando e transform-lo em classes e mtodos que voc sabe que so o que os seus clientes desejam. E, quando terminar, voc tambm poder dizer: Eu consegui! Meu software est pronto para o mundo real!
Um cachorro, dois cachorros, trs cachorros, quatro... O seu software possui um contexto Identificar o problema Planejar uma soluo Um conto de dois codificadores Desvio de delegao O poder de aplicaes livremente unidas Preste ateno nos substantivos em seu caso de uso Da boa anlise para as boas classes... Dissecamos os diagramas de classes Diagramas de classes no so tudo Bullets 104 104 105 106 111 114 116 119 127 129 132 135

Quando descobri as classes e operaes de que precisava, eu atualizei meu diagrama de classes.

Nesse contexto, as coisas do errado com muito mais freqncia.

No mundo real, existem cachorros, gatos, roedores e um monte de outros problemas, todos mancomunados para acabarem com o seu software.

O Mundo Real

voc est aqui

xiii

contedo

bom projeto = software flexvel

5 (parte 1)

Nada permanece igual


Mudar inevitvel. No importa o quanto voc goste do seu software hoje, pois ele provavelmente mudar amanh. E quanto mais difcil for para alterar o seu software, mais difcil ser responder s necessidades de mudana do seu cliente. Neste captulo, visitaremos um velho amigo, tentaremos aperfeioar um projeto de software existente e veremos como as pequenas alteraes podem se tornar grandes problemas. Na verdade, vamos descobrir um problema to grande que precisaremos de um captulo de DUAS PARTES para resolv-lo! A Guitarras do Rick est crescendo Classes abstratas Dissecamos os diagramas de classes (novamente) Cola do UML Dicas sobre problemas de projeto Trs etapas para um grande software (revisitado) 140 142 145 146 150 151

5 (interldio) CATSTROFE 00!


O PROGRAMA DE PERGUNTAS E RESPOSTAS FAVORITO DE OBJETOLNDIA

xiv

Apndice 2

contedo

5 (parte 2)

bom projeto = software flexvel Oferea ao seu software uma ginstica de 30 minutos
Voc sempre quis ser mais flexvel? Quando voc encontra problemas ao fazer alteraes em sua aplicao, isso provavelmente significa que o seu software precisa ser mais flexvel e elstico. Para ajudarmos a esticar sua aplicao, vamos fazer anlises, um monte de projetos e aprender como os princpios da OO podem soltar sua aplicao. E, para o grand finale, voc ver como uma coeso maior pode realmente ajudar no seu emparelhamento. Parece interessante? Vire a pgina e vamos voltar para corrigir aquela aplicao inflexvel. De volta ferramenta de pesquisa do Rick Um exame mais profundo do mtodo search() As vantagens da anlise As classes esto relacionadas ao comportamento A morte de um projeto (deciso) Transforme pssimas decises sobre projeto em timas decises Encapsulamento duplo no software do Rick Nunca tenha medo de errar A aplicao flexvel do Rick Test drive do software bem projetado Qual o grau de dificuldade de alterar o software do Rick? O grande desafio da facilidade de uso Uma classe coesiva faz uma coisa realmente bem O ciclo de vida do projeto/coeso Grande software bom o bastante Caixa de ferramentas da AePOO 166 167 167 170 173 174 175 180 182 184 187 188 190 192 194 195

voc est aqui

xv

contedo

Resoluo de problemas realmente grandes

Meu nome Art Vandelay... Eu sou arquiteto


hora de criarmos algo REALMENTE GRANDE. Voc est pronto? Voc tem toneladas de ferramentas em sua caixa de ferramentas da AePOO, mas como voc as utiliza para criar algo realmente grande? Bem, talvez voc no tenha percebido, mas possui tudo o que precisa para lidar com grandes problemas. Aprenderemos algumas ferramentas novas, como a anlise de domnio e os diagramas de casos de uso, mas mesmo elas se baseiam em coisas que voc j conhece como ouvir o cliente e entender o que ser construdo antes do incio da codificao. Prepare-se... hora de comearmos a brincar de arquiteto. Resolvendo grandes problemas Tudo resolvido pela forma como voc examina o grande problema Os requisitos e os casos de uso so um bom lugar para comear... Atributos comuns e inconstncia Descubra os recursos A diferena entre recursos e requisitos Os casos de uso nem sempre ajudam voc a ter uma viso geral Use diagramas de caso O pequeno ator Os atores tambm so gente (bem, nem sempre) Vamos fazer uma pequena anlise de domnio Dividir para conquistar No se esquea de quem o cliente realmente O que um padro de projeto? O poder da AePOO (e um pouco de senso comum) 200 200 203 204 206 208 209 210 214 215 218 219 223 224 226 228

O GRANDE PROBLEMA , na verdade, somente um conjunto de funcionalidades, onde cada uma um pequeno problema individual.

Caixa de ferramentas da AePOO

Grande problema

xvi

Apndice 2

contedo

Arquitetura

Traga ordem para o caos


Voc precisa comear por algum lugar, mas melhor escolher o certo! Voc sabe como dividir sua aplicao em vrios problemas pequenos, mas isso tudo significa que voc tem montes de pequenos problemas. Neste captulo, vamos ajud-lo a descobrir por onde comear e garantir que voc no perca tempo trabalhando nas coisas erradas. hora de pegarmos todas aquelas peas pequenas que esto vagando pelo seu espao de trabalho e descobrirmos como transform-las em uma aplicao organizada e bem projetada. Durante essa jornada, voc aprender as 3 perguntas importantes da arquitetura e como o risco muito mais do que s uma palavra. Voc est se sentindo um pouco oprimido? Precisamos de uma arquitetura Comece pela funcionalidade O que arquitetonicamente significativo? As trs perguntas da arquitetura A reduo dos riscos As situaes ajudam a reduzir o risco Concentre-se em um recurso por vez A arquitetura a estrutura do seu projeto Atributos comuns revisitados Anlise dos atributos comuns: o caminho para o software flexvel O que isso significa? Pergunte ao cliente A reduo do risco ajuda voc a escrever um grande software Bullets Nenhuma chance de estar pronto a tempo. 232 233 236 237 238 242 243 249 250 252 257 260 263 264

Riscmetro gigante

Uma chance em cem de que voc vai conseguir.

Somente algumas coisas podem realmente dar errado.

o mais perto do certo que umsoftwarepodechegar!

voc est aqui

xvii

contedo

Princpios de projeto

A originalidade superestimada
A imitao a forma mais sincera de no sermos burros. No h nada mais satisfatrio do que bolar uma soluo totalmente nova e original para um problema que o perturba por dias at que voc descobre que outra pessoa resolveu o mesmo problema muito antes de voc e ainda por cima fez um trabalho muito melhor! Neste captulo, vamos ver alguns princpios de projeto imaginados pelas pessoas em todos esses anos, e como eles podem torn-lo um programador melhor. Deixe de lado sua mania de fazer sua maneira; este captulo sobre fazer da forma mais rpida e mais inteligente. Resumo dos princpios de projeto O princpio do aberto-fechado (OCP) 268 268 269 271 273 279 280 283 288 288 289 289 290 291 293 296 297 298 299 300

O princpio do aberto-fechado

O OCP, passo a passo O princpio do no se repita (DRY) O DRY sobre um requisito em um local O princpio da responsabilidade nica (SRP) Descobrimos vrias responsabilidades De vrias responsabilidades para uma nica O princpio da substituio Liskov (LSP) Mau uso das subclasses: um estudo de caso sobre mau uso de herana O LSP revela problemas ocultos com a sua estrutura de heranas Os subtipos devem poder ser substitudos por seus tipos base
O princpio da responsabilidade nica

O princpio do no se repita

Violar o LSP tornar seu cdigo confuso Delegue funcionalidade para outra classe Use a composio para juntar comportamentos de outras classes Agregao: uma composio sem o final abruto Agregao versus composio A herana somente uma opo Bullets Caixa de ferramentas da AePOO

O princpio da substituio Liskov

xviii Apndice 2

contedo

Repetio e testes

O software ainda para o cliente


hora de mostrar ao cliente o quanto voc realmente se importa. Chefes chatos? Clientes preocupados? Acionistas que ficam perguntando: ficar pronto a tempo? Nenhum cdigo bem projetado ir satisfazer seus clientes, voc tem de mostrar a eles algo que funcione. E, agora que voc possui um slido conjunto de ferramentas para a programao OO, hora de aprender como voc pode provar ao cliente que o seu software funciona. Neste captulo, aprenderemos duas formas de mergulhar mais fundo na funcionalidade do seu software e ofereceremos a ele aquela sensao agradvel no peito que os faz dizer: sim, voc realmente o desenvolvedor certo para este trabalho! Sua caixa de ferramentas est ficando cheia Voc escreve um grande software de forma repetitiva Mais fundo na repetio: duas opes bsicas Desenvolvimento orientado a recursos Desenvolvimento orientado a casos de uso Duas abordagens de desenvolvimento Anlise de um recurso Escreva situaes de teste Desenvolvimento orientado a testes Anlise dos atributos comuns (revisitada) Enfatize os atributos comuns Enfatize o encapsulamento Combine seus testes ao seu projeto Casos de teste dissecados... Mostre toda a sua capacidade para o cliente Temos programado por contrato A programao por contrato se baseia na confiana A programao defensiva Divida suas aplicaes em pedaos menores de funcionalidade Bullets 306 306 307 308 309 309 312 314 316 318 320 321 324 325 330 331 332 333 339 341 343

Unit
type: String properties: Map id: int name: String weapons: Weapon *

Caixa de ferramentas da AePOO

Todas as propriedades comuns s unidades so representadas como variveis fora do mapa de propriedades.

setType(String) getType(): String setProperty(String, Object) getProperty(String): Object getId(): int getName(String) getName(): String addWeapon(Weapon) getWeapons() Weapon

Sam descobriu que funcionaria no construtor Unit; portanto, no precisamos de um mtodo setId(). Cada uma das novas propriedades possui seu prprio conjunto de mtodos.

voc est aqui

xix

contedo

O ciclo de vida da A&POO

10

Vamos juntar tudo


Ns j chegamos ao fim? Temos trabalhado em vrias maneiras individuais para aperfeioarmos o seu software, mas agora hora de juntarmos tudo. Ou seja, o que voc estava esperando: vamos pegar tudo o que voc aprendeu e mostrar como isso tudo realmente parte de um nico processo que pode ser usado sempre na criao de um grande software. Desenvolvimento de software ao estilo AePOO O problema do metr de Objetolndia O mapa do metr de Objetolndia Listas de recursos Os casos de uso refletem o uso e os recursos refletem a funcionalidade Agora voc pode comear a repetir Um exame mais prximo da representao de um metr Usar ou no usar uma linha Pontos de interesse do metr de Objetolndia (classe) Proteja suas classes Pausa De volta fase dos requisitos Concentre-se no cdigo e, em seguida, nos clientes A repetio torna os problemas mais fceis Como a aparncia de uma rota? D uma olhada em Objetolndia por conta prpria! Algum quer a repetio n 3?
o

348 352 354 357 361 365 367 376 382 385 393 395 397 401 406 409 413 416

A viagem ainda no acabou...

Lista dos Principais Recursos Fale com o cliente


Lista de recursos

Princpios da OO

Padro de Projeto Princpios de Projeto Arquitetura Iniciador Externo Encapsulamento Anlise Situao Fale com o cliente Padro de Projeto Encapsulamento Diagramas de
caso de uso Divida o problema Requisitos Anlise de Projeto preliminar Implementao

domnio Entrega Atributos comuns Anlise textual Desenvolvimento orientado a recursos Lista dos principais recursos Caminho AlternativoRepetio Repetio Delegao Iniciador externo Coeso Desenvolvimento orientado a testes Inconstncia Repetio Arquitetura Princpios de Projeto Repetio Lista de Requisitos Diagrama de classe Situao de Teste Caminho Alternativo

xx

Apndice 2

contedo

Apndice I: as sobras

Os dez melhores tpicos (que no mencionamos)


Pode acreditar, ainda tem mais. Sim, depois de 550 pginas, ainda h coisas que no pudemos mostrar. Mesmo que estes 10 tpicos no meream mais do que uma meno, no quisemos que voc se despedisse de Objetolndia sem algumas informaes sobre eles. Mas veja, agora voc j tem um pouco mais de assunto para conversar durante os comerciais da seo CATSTROFE... E quem no adora uma boa conversa sobre AePOO de vez em quando? No 1. IS-A e HAS-A No 2. Formatos de casos de uso No 3. Antipadres No 4. Cartes CRC No 5. Mtricas No 6. Diagramas de seqncia No 7. Diagramas de estado No 8. Testes de unidade No 9. Padres de codificao e cdigo legvel N 10. Recriao
o

418 419 421 421 422 423 424 425 427 428

Antipadres Os antipadres so o contrrio dos padres de projeto: so as solues RUINS comumente usadas. Essas armadilhas perigosas devem ser reconhecidas e evitadas.

No se esquea de escrever aquilo que esta classe faz por conta prpria, assim como as coisas em que ela colabora com outras classes.

Classe: DogDoor Descrio: representa a porta para cachorros fsica. Oferece uma interface com o hardware que realmente controla a porta. Responsabilidades: Nome Colaborador
Abrir a porta Fechar a porta No h classe colaboradora.

voc est aqui

xxi

contedo

Apndice II: bem-vindo a Objetolndia

II

Fale a linguagem da OO
Prepare-se para uma viagem internacional. Prepare-se para visitar a Objetolndia, um pas onde os objetos fazem exatamente o que se espera deles, as aplicaes so bem encapsuladas (voc saber o que isso significa em instantes) e os projetos so facilmente reutilizados e estendidos. Mas antes de partir, h algumas coisas que voc precisa saber primeiro, e algumas habilidades de linguagem que voc ter de aprender. No se preocupe, isso no vai demorar e, antes que perceba, voc estar falando a linguagem de OO como se vivesse h anos nas reas bem projetadas de Objetolndia. UML e os diagramas de classe Herana Polimorfismo Encapsulamento Bullets
Este o nome da classe. Estar sempre em negrito, na parte superior do diagrama de classes.

432 434 435 438 439

assim que voc mostra uma classe em um diagrama de classes. Essa a forma como o UML deixa que voc represente detalhes sobre as classes em sua aplicao. Estas so as variveis membro da classe. Cada uma tem um nome e exibe o tipo aps os dois pontos.

Airplane speed: int getSpeed(): int setSpeed(int)


Esta linha separa as variveis membro dos mtodos da classe.

Estes so os mtodos da classe. Cada um tem um nome e ento exibe quaisquer parmetros que aceitar e um tipo de retorno aps os dois pontos.

Um diagrama de classes nos ajuda a ter uma viso geral: voc pode facilmente dizer qual a funo de uma classe de imediato, e nunca poder deixar as variveis e/ou os mtodos de fora se eles ajudarem na comunicao.

xxii Apndice 2

Você também pode gostar