ClassesDominio

De Stoq Wiki
Ir para: navegação, pesquisa

Organização dos módulos de domínio

Separar sempre os módulos de domínio em dois blocos comentados e com três linhas de espaçamento inferior e superior: -

  • Base Domain Classes: bloco que define as classes de domínio não associadas a interfaces e que servirão de base para os adapters.
  • Adapters: classes que implementam interfaces e adaptam determinado objeto de domínio

Atributos requeridos/obrigatórios para as classes

Ao definir uma classe de domínio cujos objetos serão enviados para um editor do Kiwi deveremos sempre atentar para o fato de definirmos junto a mesma uma lista de objetos requeridos(requiredattrs). Esta lista será usada pelo kiwi no momento de setar as cores das labels na interface e também pelos validadores responsáveis por habilitar o botão "ok".

Quando setaremos atributos obrigatórios no construtor das classes ?

Nunca, estaremos sempre setando atributos obrigatórios via lista requiredattrs.


Para o design das classes de domínio usaremos a infra-estrutura oferecida pelos componentes twisted: adapters e interfaces.

Vide:

O módulo twisted se encontra instalado em: /usr/lib/python2.3/site-packages

Conclusão:

Em síntese podemos definir algumas vantagens pertinentes ao uso de interfaces e adapters dentro do processo de modelagem de classes

  • Temos classes pequenas o que maximiza o caráter portável das mesmas
  • Concentramos a maior parte da lógica operacional nos adapters, mantendo assim classes de domínio pequenas e de fácil manutenção.
  • As interfaces possibilitam moldar ações que combinam caracteristicas de mais de um tipo de objeto. Desta forma também aumentamos a portabilidade, tornamos mais fácil o aproveitamento das classes existentes e no final temos um código mais legível.
  • Evitamos heranças complexas e com isso maximizamos o nosso grau de mantenabilidade.

Componentes e interfaces

  • portabilidade
  • mantenabilidade
  • legibilidade
  • baixa hierarquia de classes

Leitura recomendada