Pergunta

Eu tenho uma pergunta design. Ao escrever um aplicativo onde existem vários componentes que compartilham alguns atributos, e diferem em outros, tanto em termos de GUI (Windows Forms) e back-end, como seria um teoricamente abordar isso?

Por exemplo, eu tenho um aplicativo onde eu tenho 4 tipos diferentes de um produto. Os formulários para a entrada do produto detalhes todos compartilham 3 campos diferentes. Até agora, fácil - tem uma classe base, em seguida, obter os 4 formas fora desta classe base. No entanto, dizem, 2 produtos compartilhar um determinado comportamento que é o mesmo para ambos. Claro, eu poderia ter uma interface que define métodos, em seguida, ter estes formulários de entrada de 2 produto implementar essa interface, mas desde interface fornece nenhuma implementação padrão, não seria um desperdício para fazer isso? Desde que eu teria que fornecer uma implementação em cada classe e se ele é exatamente o mesmo, seria repetição de código.

Eu poderia naturalmente colocar esse método na classe base e tem 2 formas derivadas a partir dele. Se minhas formas compartilhar mais do que um elemento comum e não compartilhar outros elementos, o que seria a maneira mais sã, mais lógica para representar isso sem ter que rasgar meu cabelo?

Nenhuma solução correta

Outras dicas

Por que não ter as 2 classes não relacionadas decorrem directamente da sua classe base e, em seguida, criar uma nova classe com a funcionalidade comum e é derivada da classe base e têm as restantes duas classes herdam essa nova classe?

BaseClass
CommonClass : BaseClass
ClassA : BaseClass
ClassB : BaseClass
ClassC : CommonClass
ClassD : CommonClass

Uma maneira de obter um comportamento comum em duas classes é para as duas classes de conter que o comportamento como um membro, em vez de herdando que o comportamento: para formulários, isso pode significa que define um 'controlo de utilizador' (ou seja, um conjunto reutilizável de controlos comuns).

É difícil dizer sem qualquer layout específico. Geralmente, a outra forma, muitas vezes mais flexível de reutilização está fazendo a composição em vez de herança. Na verdade os shows hierarquia de controle quão composição forte pode ir. Talvez você possa separar partes do seu UI em controles personalizados que são montados com base no produto específico layout que você está depois

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