Skip to content

Remove dependência de implementação concreta na interface UowInterface - #5

Open
rivaelRodriguesJr wants to merge 1 commit into
devfullcycle:mainfrom
rivaelRodriguesJr:enh-usar-interface-uow
Open

rivaelRodriguesJr wants to merge 1 commit into
devfullcycle:mainfrom
rivaelRodriguesJr:enh-usar-interface-uow

Conversation

@rivaelRodriguesJr

Copy link
Copy Markdown

Problema

O método Do da interface UowInterface declara o callback como func(uow *Uow) error, expondo o tipo concreto *Uow no contrato da interface.

Isso torna a interface inutilizável como abstração:

  • Qualquer consumidor de Do fica acoplado ao struct concreto *Uow.
  • Não é possível mockar ou substituir a implementação em testes, pois a assinatura do callback exige o tipo concreto.
  • A interface deixa de cumprir seu papel de desacoplamento — ela "vaza" a implementação para quem a consome.

Mudança

Troca-se o parâmetro do callback de *Uow para UowInterface:

// antes
Do(ctx context.Context, fn func(uow *Uow) error) error

// depois
Do(ctx context.Context, fn func(uow UowInterface) error) error

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant