Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
jonjamz committed Mar 1, 2014
1 parent 076bc14 commit 2bd2e14
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion README.md
Expand Up @@ -13,7 +13,7 @@ So essentially, we're passing common pieces of functionality around and binding

Subjects in Amethyst ensure that everything you need in order to execute some piece of functionality is self-contained, reusable, and automatically namespaced. Subjects also can very easily share the same data structures across many different parent objects if desired--you can very easily save a subject from within a closure, meaning all components that use that subject have access to the same encapsulated, shared data structures, similar to Flyweight pattern.

Subjects in Amethyst __are all lazy-loaded__. Child subjects of a parent don't run until you load the parent. _This differs greatly from a typical component or package system, as the relationship between subjects is deliberately left open-ended._ You can have a subject within a subject within a subject (an so on) and if you don't load the parent, the children won't load either. This allows you to explore deep functionality and customization at a negligible cost. Use what you need when you need it.
Subjects in Amethyst __are easily lazy-loaded__ (see the constructor pattern below). Child subjects of a parent don't run until you load the parent. _This differs greatly from a typical component or package system, as the relationship between subjects is deliberately left open-ended._ You can have a subject within a subject within a subject (an so on) and if you don't load the parent, the children won't load either. This allows you to explore deep functionality and customization at a negligible cost. Use what you need when you need it.

Subjects force you to build canonical applications. If you create your entire application using subjects, you'll have a single place to control all error handling and logging. Want to integrate the latest remote logging API? Just put it in one place and watch all logs appear there. All the forms in your application will use the same validation and style, and if you want to make some minor changes, you just have to create a new subject that loads in and modifies the previous `forms` subject. The list goes on.

Expand Down

0 comments on commit 2bd2e14

Please sign in to comment.