Estou enfrentando alguns problemas para implementar uma série de interfaces para padronizar os métodos de diversas bibliotecas. Basicamente o que preciso é padronizar a assinatura das funções para manter a compatibilidade, ou seja, suponhamos que temos uma biblioteca A do Produto A e biblioteca B para um Produto B, a aplicação gerada utilizando a biblioteca A ou B deve ser compatível para haver reaproveitamento de código. Este é o cenário inicial, para isso, existem alguns requisitos:
Ter uma factory que garante a geração dos diversos módulos de forma única (singleton)
Provisionar uma interface que permita que a geração de novas bibliotecas sigam as regras impostas no primeiro item.
Não consegui estabelecer essa junção de padrões usando somente interfaces e abstracts. O que vocês indicam para essa tarefa?
Pra mim seu cenário não faz sentido nenhum… garantir reaproveitamento padronizando assinatura de métodos.
Ainda mais porque bibliotecas são reaproveitáveis por definição, elas precisam entregar uma funcionalidade que pode ser útil tanto para produto A ou B. Se uma biblioteca servisse apenas produto A não haveria necessidade de criar uma biblioteca.