Pergunta

Eu tenho uma classe de dados com os seguintes métodos:

  • ExecuteUDIQuery (query string)
  • ExecuteSelectQuery (query string)
  • ExecuteSP (anme string, string [,] params)

Eu tenho algumas classes de lote que usam a classe de dados. Agora eu quero criar um diagrama de classe, mas eu não sei que tipo de relação as classes têm com a classe de dados. É um composto? É 1: 1 ou ..

Um exemplo de uma classe que usar a classe de dados é a classe Staff. Essa classe tem um método load (), que irá carregar um objeto pessoal com o Id do membro do pessoal. Este método contém uma consulta que é passado para o método ExecuteSelectQuery (string query) da classe de dados.

EDIT: A classe de dados não é estática. No entanto, eu tenho minhas dúvidas. Eu realmente não sei o que fazer. O ponto é, a única coisa que faz é executar consultas e retornar os resultados.

Foi útil?

Solução

Gostaria de sugerir é um uso relação de dependência.

Veja aqui para uma descrição breve.

Outras dicas

Eu iria consultar a nomeação de suas classes. um nome de classe deve ser normalmente um substantivo singular. Exemplos;

  • Janela
  • Person
  • Transaction

dados é um plural, e em qualquer caso, eu acho que deveria ser base de dados.

Da mesma forma para o pessoal - uma vez mais plural, eu acho que deveria ser MemberOfStaff. A menos é claro que é uma lista de membros da equipe, caso em que eu iria chamá-lo algo como Departamento, projeto ou Divisão - seja qual for o seu domínio do problema indica

.

Você vai descobrir que chegando com bons nomes para classes é surpreendente ly difícil, mas vale bem a pena o esforço.

A diferença entre agregações, compósitos e 1 em 1 relações são um pouco vagos e um tanto arbitrária.

Eu uso a agregação (diamante aberto) se uma classe possui a outra classe (é responsável pelo ciclo de vida.

Eu uso o 1 em 1 relações em todos os outros casos.

é a classe instanciada pelas classes que usam ou são a estática métodos? Se eles são estáticos I representaria isso como uma dependência não qualificado (seta apontando pontilhada das classes que está usando a classe de dados para a classe de dados)

Se as classes que estão usando a classe de dados criar sua própria instância privada dessa classe que este seria um 1: composição 1 (assumindo que lifcycle da instância de classe de dados está vinculado ao objeto que está usando)

Eu não posso abster-se de comentar o seu design geral, eu iria tentar mover o método de carga para fora da classe Staff, para que esta classe não depende da classe de dados diretamente.

No âmbito do seu projeto existente eu sugiro o seguinte: Se a classe de funcionários contém uma variável de instância da classe de dados, então é uma associação. Se a classe de dados é instanciado apenas para recuperar a instância, é apenas uma dependência de um determinado tipo, como @toolkit diz.

Não há dados suficientes.

Dê-nos alguns contornos de classe ou algo assim. Pelo que posso ver, eu não teria realmente chamado esta uma classe de dados (que mais parece um dado acessor ), que soa como ele pode ser um singleton (muitos : 1, agregação ou associação), ou se instanciado será um 1:. componente 1

Agora eu quero criar um diagrama de classe, mas eu não sei que tipo de relação as classes têm com a classe de dados.

Nem nós - você apenas descreveu a classe de dados, e não disse como a equipe obtém os dados que ele usa.

Se o pessoal detém sobre a uma ou mais instâncias da classe de dados, então não há nem uma associação entre funcionários e Dados, ou equipe tem um atributo do tipo de dados (se dados tem semântica de valor).

Se as instâncias de dados são referenciado por várias instâncias do Pessoal e seus ciclos de vida são dependentes sendo referenciado por instâncias do pessoal, então isso pode ser mostrado como uma relação de agregação. Se as instâncias de dados não são partilhados entre instâncias pessoal e dos seus ciclos de vida são dependentes a ser referenciado, então este pode ser mostrada como uma relação de composição.

Se X não manter a preensão dos exemplos dados que ele usa, em seguida, uma relação de uso é apropriado.

Dependência e uso são os dois tipos mais fraco de "conectores". Você pode considerar estereótipos, palavras-chave para refinar a relação. Você pode achar que instanciar, chamada, criar, trabalhar envio estereótipos. Sem mais informações, embora a resposta correta parece ser de uso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top