Chapter 7. Models and services: How are they different?

You might have heard of MVC and wondered why the S was added for the Robotlegs MVCS architecture. Why separate models from services when they both deal with data most of the time?

Models and services are very similar, but understanding their important differences can help you to use them more effectively. By separating models from services, we provide a clear line in the sand for our classes—boxing off the functionality that they should contain. A service doesn’t store data. A model doesn’t communicate with the outside world to retrieve data. Still—they are closely related. A model is empty without the appropriate service, and a service has no purpose without the models.

Models and Services usually extend Actor

Actor is a very simple base class—just a dependency on the eventDispatcher (a property of Actor) that is shared throughout the application. This allows your models and services to dispatch state and status updates that the whole application can pick up.

It is important to understand that you do not need to extend Actor. Actor is provided for your convenience, to give you the core functionality that is commonly needed by models and services in a Robotlegs application. If your models and services don’t need that core functionality, or you would like them to be reused in a non-Robotlegs code base, you can provide the functionality of Actor manually without extending anything.

They don’t listen, they only talk

Models and services ...

Get ActionScript Developer's Guide to Robotlegs now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.