Objetos Humildes e o Limite da Visão
Aplique o padrão Objeto Humilde para manter o código da visão enxuto e testável, transferindo todas as decisões para apresentadores testáveis no limite da apresentação.
Objetos Humildes e o Limite da Visão é uma aula grátis de Clean Architecture & Design Patterns in Practice no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Clean Architecture & Design Patterns in Practice, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Clean Architecture & Design Patterns in Practice inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
The Hardest Code to Test
UI code is notoriously hard to test: it touches frameworks, screens, and event loops.
The Humble Object pattern solves this by splitting behavior so that the hard-to-test part becomes humble — nearly logic-free.
The Pattern in One Idea
Separate code into two parts across a boundary:
- A humble part: thin, dumb, hard to test (the view).
- A testable part: holds all the logic (the presenter).
Almost all behavior moves to the testable side.
Applying It to the View
The view becomes humble: it only displays already-formatted data and forwards user events.
It contains no formatting decisions, no conditionals about what to show — just assignment of fields to widgets.
The View Interface
Define what the presenter can ask the view to display.
interface OrderView {
void showTotal(String formattedTotal);
void showError(String message);
}The Testable Presenter
The presenter does all the work and pushes finished strings to the humble view.
class OrderPresenter {
private final OrderView view;
OrderPresenter(OrderView view) { this.view = view; }
void present(double total) {
if (total < 0) { view.showError("Invalid total"); return; }
view.showTotal("$" + String.format("%.2f", total));
}
}Why This Is Testable
Because the presenter talks to a view interface, a test supplies a fake view and asserts what was shown — no framework required.
class FakeView implements OrderView {
String shown;
public void showTotal(String t) { shown = t; }
public void showError(String m) { shown = m; }
}A Runnable Example
The presenter formats; the humble view simply records what it was told.
public class Main {
interface View { void show(String s); }
static class Presenter {
final View v;
Presenter(View v){ this.v=v; }
void present(double total){ v.show(total<0 ? "Invalid" : "$"+String.format("%.2f", total)); }
}
static class FakeView implements View { String last; public void show(String s){ last=s; } }
public static void main(String[] a){
FakeView fv = new FakeView();
new Presenter(fv).present(12.5);
System.out.println("View shows: " + fv.last);
}
}The Boundary Is the Key
The humble object pattern always centers on a boundary interface. Logic lives on the testable side of that boundary; the framework lives on the humble side.
This is exactly how Clean Architecture keeps frameworks at arm length.
Where Else It Applies
- Database access: a humble gateway, testable logic above it.
- Hardware or sensors: humble drivers, testable controllers.
- Web handlers: humble controllers delegating to interactors.
Anywhere the framework boundary is hard to test.
Keeping the View Truly Humble
Resist sneaking logic back into the view. The moment a view starts deciding what to format or whether to show something, it stops being humble and becomes untestable again.
Guidelines
- Define a view interface the presenter drives.
- Put all formatting and branching in the presenter.
- Let the view only assign values and emit events.
- Test the presenter with a fake view.
Quick Check
Test your understanding of the Humble Object pattern.
Recap
You learned the Humble Object pattern for the view boundary.
- Split into a humble view and a testable presenter.
- All logic lives on the testable side of a boundary interface.
- This keeps frameworks out of your tests and your core.
Aprenda Clean Architecture & Design Patterns in Practice com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 12
- Aulas
- 48
Perguntas Frequentes
A aula “Objetos Humildes e o Limite da Visão” é grátis?
Sim — o texto completo de “Objetos Humildes e o Limite da Visão” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Clean Architecture & Design Patterns in Practice, atualize para CoddyKit PRO. O curso de Clean Architecture & Design Patterns in Practice inclui 4 aulas no total.
O que vou aprender em “Objetos Humildes e o Limite da Visão”?
Aplique o padrão Objeto Humilde para manter o código da visão enxuto e testável, transferindo todas as decisões para apresentadores testáveis no limite da apresentação. Você pratica Clean Architecture & Design Patterns in Practice com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Clean Architecture & Design Patterns in Practice?
Nenhuma experiência prévia é necessária. Clean Architecture & Design Patterns in Practice no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Objetos Humildes e o Limite da Visão”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Clean Architecture & Design Patterns in Practice?
Sim. Cada aula de Clean Architecture & Design Patterns in Practice inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Apresentadores e Modelos de Visualização
- Adaptação a Estruturas Web
- Testando a Camada de Apresentação
- Objetos Humildes e o Limite da Visão