首页 > 其他分享 >UML建模电台-《MVC之歌》

UML建模电台-《MVC之歌》

时间:2022-10-18 13:33:54浏览次数:52  
标签:code 建模 Yeah Controller MVC UML Model your View



《MVC之歌》,作者James Dempsey是苹果公司的高级工程师。

这首歌后来被收录在oreilly的畅销书《Head First设计模式》中,随着这本书扬名世界。


James Dempsey从2003-2013年在苹果公司的多次活动上演唱过这首歌,下面我们来听一听他在2003年WWDC(Worldwide Developers Conference,苹果全球开发者大会)上自弹自唱的版本。


UML建模电台-《MVC之歌》_设计模式

歌词:


Model, View, Controller 


Lyrics and music by James Dempsey. 


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.


标签:code,建模,Yeah,Controller,MVC,UML,Model,your,View
From: https://blog.51cto.com/u_15684364/5765895

相关文章