395px

Modelo Visão Controlador

James Dempsey

Model View Controller

Model View, Model View, Model View Controller
MVC's the paradigm for factoring your code,
into functional segments so your brain does not explode.
To achieve reusability you gotta keep those boundaries clean,
Model on the one side, View on the other, the Controller's in between.

Model View - It's got three layers like Oreos do.
Model View creamy Controller

Model objects represent your applications raison d'être.
Custom classes that contain data logic and et cetra.
You create custom classes in your app's problem domain,
then you can choose to reuse them with all the views,
but the model objects stay the same.

You can model a throttle in a manifold,
Model level two year old.
Model a bottle of fine Chardonnay.
Model all the twaddle stuff people say.
Model the coddle in a boiling eggs.
Model the waddle in Hexley's legs.

One, two, three, four.
Model View - You can model all the models that pose for GQ.
Model View Controller

View objects tend to be controls that view and edit,
Cocoa's got a lot of those, well written to its credit.
Take an NSTextView, hand it any old Unicode string,
the user interacts with it, it can hold most anything.
But the view don't knows about the Model:
That string could be a phone number or the words of Aristotle.
Keep the coupling loose and so achieve a massive level of reuse.

Model View - All rendered very nicely in Aqua blue
Model View Controller

You're probably wondering now.
You're probably wondering how,
the data flows between Model and View.
The Controller has to mediate,
between each layer's changing state,
to synchronize the data of the two.
It pulls and pushes every changed value.
Yeah.

Model View - mad props to the smalltalk crew!
for Model View Controller

Model View - it's pronouced Oh Oh not Uh Uh
Model View Controller

There's a bit more on this story,
a few more miles upon this road,
well nobody seems to get much glory
writing controller code.
Well the model is mission critical
and gorgeous is the view,
But I'm not being lazy, but sometimes it's just crazy
how much code i write is just glue.
And it wouldn't be so tragic,
but the code ain't doing magic:
it's just moving values through.
And I wish I had a dime
for every single time
I set a TextField's stringValue.

Model View - how we're gonna deep-six all that glue
Model View Controller

Controller's know the Model and View very
uahh - intimately
They often are hardcoding
which is very verboten for reusability.
But now you can connect any value you select
to any view property.
And I think you'll start binding,
then you'll be finding less code in your source tree.
Yeah I know I was astounded,
that's not even a rhyme.

But I think it bares repeating
all the code you won't be needing,
when you hook it up in IB.

Model View - it even handles multiple selections too
Model View Controller

Model View - hope I get my G5 before you
Model View Controller

Yeah, yeah, yeah. Yeah.

Modelo Visão Controlador

Modelo Visão, Modelo Visão, Modelo Visão Controlador
MVC é o paradigma para organizar seu código,
em segmentos funcionais pra sua cabeça não explodir.
Pra conseguir reutilização, você tem que manter as fronteiras limpas,
Modelo de um lado, Visão do outro, o Controlador tá no meio.

Modelo Visão - Tem três camadas como os Oreos têm.
Modelo Visão cremoso Controlador

Objetos modelo representam a razão de ser da sua aplicação.
Classes personalizadas que contêm lógica de dados e etc.
Você cria classes personalizadas no domínio do problema do seu app,
então você pode escolher reutilizá-las com todas as visões,
mas os objetos modelo permanecem os mesmos.

Você pode modelar um acelerador em um coletor,
Modelo nível dois anos de idade.
Modelar uma garrafa de Chardonnay fino.
Modelar todas as besteiras que as pessoas dizem.
Modelar o carinho em ovos cozidos.
Modelar o andar desengonçado nas pernas do Hexley.

Um, dois, três, quatro.
Modelo Visão - Você pode modelar todos os modelos que posam para a GQ.
Modelo Visão Controlador

Objetos de visão tendem a ser controles que visualizam e editam,
Cocoa tem muitos desses, bem escritos, é um crédito.
Pegue um NSTextView, passe qualquer string Unicode,
o usuário interage com ele, pode segurar quase qualquer coisa.
Mas a visão não sabe sobre o Modelo:
Aquela string pode ser um número de telefone ou as palavras de Aristóteles.
Mantenha o acoplamento solto e assim consiga um nível massivo de reutilização.

Modelo Visão - Tudo renderizado muito bem em azul Aqua
Modelo Visão Controlador

Você deve estar se perguntando agora.
Você deve estar se perguntando como,
os dados fluem entre Modelo e Visão.
O Controlador tem que mediar,
entre o estado em mudança de cada camada,
para sincronizar os dados dos dois.
Ele puxa e empurra cada valor alterado.
É.

Modelo Visão - grandes aplausos para a galera do Smalltalk!
pelo Modelo Visão Controlador

Modelo Visão - se pronuncia Oh Oh não Uh Uh
Modelo Visão Controlador

Tem um pouco mais nessa história,
mais algumas milhas nesse caminho,
bem, ninguém parece ter muita glória
escrevendo código de controlador.
Bem, o modelo é crítico para a missão
e a visão é linda,
Mas não estou sendo preguiçoso, mas às vezes é só loucura
quanto código que escrevo é só cola.
E não seria tão trágico,
mas o código não faz mágica:
é só movendo valores por aí.
E eu gostaria de ter um centavo
para cada vez que
eu defino o stringValue de um TextField.

Modelo Visão - como vamos eliminar toda essa cola
Modelo Visão Controlador

Controladores conhecem o Modelo e a Visão muito
uahh - intimamente
Eles costumam estar codificando na mão
o que é muito proibido para reutilização.
Mas agora você pode conectar qualquer valor que selecionar
a qualquer propriedade de visão.
E eu acho que você vai começar a vincular,
então você vai encontrar menos código na sua árvore de origem.
É, eu sei que fiquei surpreso,
isso nem é uma rima.

Mas eu acho que vale a pena repetir
todo o código que você não vai precisar,
quando você conectar tudo no IB.

Modelo Visão - ele até lida com múltiplas seleções também
Modelo Visão Controlador

Modelo Visão - espero que eu consiga meu G5 antes de você
Modelo Visão Controlador

É, é, é. É.

Composição: James Dempsey