Backbone classes often wind up being tightly coupled together. For instance, a View
class might listen to a Model
class for changes in its data, and then, when this data changes, it might look at the attributes
of the Model
to determine what to render. This practice couples the View
class to the Model
class, which normally is a good thing as it lets you define the exact relationship you need between the two classes, while still keeping your code fairly simple and maintainable.
When you only have a few Models
and Views
, it's easy enough to manage their relationships in this way. However, if you are building a particularly complex user interface, then this same coupling can instead become a hindrance. Imagine having a single page with a large number of Collections
, Models
, and Views
, all listening and responding to changes in one another. Whenever a single change occurs, it can cause a ripple effect, resulting in further changes, which can then result in still further changes...