16.4. Implicit Lock
O framework bloqueia por você; ninguém esquece.
Resumo
- O framework ou a superclasse obtém os bloqueios offline automaticamente.
- Motivo: um só esquecimento de bloquear torna inútil todo o esquema de bloqueio.
- Ex.: mapper abstrato pega o bloqueio no
find; Layer Supertype checa versão noupdate. - Desenvolvedores ainda precisam entender o esquema (deadlocks, ordem), mas não podem esquecer.
- Recomendado sempre que houver bloqueio offline em uma equipe maior.
Perguntas-chave
responda de cabeça, depois abraPor que bloquear implicitamente?
Porque esquecer um único bloqueio quebra a proteção de todo o sistema.
Onde o bloqueio implícito costuma ficar?
No mapper abstrato, no Unit of Work ou em um Layer Supertype.
Implícito significa que os devs podem ignorar a concorrência?
Não. Eles ainda precisam entender os efeitos (esperas, deadlocks).
Exercícios de fixação
0/5 respondidas1.
AbstractMapper.find() chama o gerenciador de bloqueios antes de carregar qualquer objeto, sem que o desenvolvedor peça. Qual padrão?2.
Por que Fowler defende o bloqueio implícito?
3.
Com Implicit Lock, os desenvolvedores:
4.
Onde não é um bom lugar para colocar o bloqueio implícito?
5.
Implicit Lock é usado em conjunto com: