Este é um post disponível para assinantes MVPArtigo Clube Delphi 61 - Programação Orientada por Objetos
Artigo da Revista Clube Delphi Edição 61.

Atenção: por essa edição ser muito antiga não há arquivo pdf para download desta revista. os artigos disponíveis somente em doc.
Programação Orientada por Objetos
Parte IV - A Aplicação Completa
por Adail Muniz Retamal
Espero que a essa altura do campeonato você já tenha compreendido os fundamentos da análise e projeto orientados por objeto, além de tê-los experimentado na prática e acompanhado o nosso exemplo do estacionamento OOPark. O domínio do problema foi simplificado, mas ainda assim contém material suficiente para boas semanas de trabalho, dependendo do nível de detalhe exigido.
Como é impossível cobrir, em apenas um artigo, tudo o que foi necessário fazer para criar a aplicação completa, explicarei apenas os pontos essenciais. que ressaltam as vantagens de termos seguido o processo de MDD (Model-Driven Development- Desenvolvimento Dirigido pelo Modelo) oferecido pelo Delphi 2005 com o ECO II.Você poderá baixar a aplicação completa no endereço para download deste artigo.
O Modelo Final(?)
Como já mencionei anteriormente, um modelo de classes sofre muitas alterações, em algumas fases mais do que
Essas alterações foram exigidas depois que iniciei o desenvolvimento da aplicação. Como foram feitas? Muito fácil: alterei o modelo, acrescentando os atributos e métodos, e pedi para que o ECO fizesse a evolução do banco de dados! Para isso, abri a unit EcoPersistenceMapperProvider e cliquei no botão Evolve Schema.
Também podemos clicar com o botão esquerdo do mouse na superfície livre do designer e escolher a opção Evolve Schema. O wizard vai mostrar as alterações necessárias na tabela e ao clicar no botão Execute,o banco ficará sincronizado com o modelo! Mas isso só é necessário se foram acrescentados ou retirados
atributos persistentes do modelo.
Especificando o tipo de cachê
Nossa aplicação será em ASP.NET, portanto, múltiplas requisições podem ser fei-tas, o que exigirá a criação de diversos EcoSpaces, isso é, espaços de objetos, para atender às requisições. Para melhorar a performance e garantir a integridade de cada um deles. O ECO oferece algumas opções de cache epooling Na unit Eco SpaceProvider existe uma linha que deve ser alterada, para o nosso caso:
const
MODE: EcoSpaceStrategyHandIer.SessionStateMode –
EcoSpaceStrategyHand1ei-.SessionStateMode.A1ways;
O valor default para essa constante é IfDirty, o que não nos ajuda muito aqui. Outro valor possível seria Never, o que tornaria o EcoSpace inútil para nossa apli-cação, mas é utilizado
Atributos derivados
Comentei que os atributos 77po,das classes Pessoa e TipoVeiculo, eram derivados. Bom, essa é uma das mil maravilhas do ECO. É algo equivalente a um campo cal-culado de um DataSet, mas muito melhor. No caso desse atributo, ao adicioná-lo à classe TipoVeiculo, altere a propriedade derived para True e coloque a expressão OCL para derivar o valor, que nesse caso é apenas a concatenação dos atributos Fabricante e Modelo,com um espaço entre eles. Portanto, a propriedade Derivation OCL ficou assim: Fabricante +"+ Modelo

Figura1.Diagrama de classes “final”
Observe também que o ECO já ajustou a propriedade persistence para transient, pois esse valor não será armazenado no banco. Para indicar que esse atributo é derivado, aparece uma barra'/' no lado esquerdo do nome dele no diagrama.
O atributo Tipo da classe Pessoa é para indicar que se trata de uma pessoa física (F) ou jurídica (J). A Derívation OCL ficou com o seguinte código:
"
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVP
Space do autor



0
0
