Observer Pattern

When designing your application, you might run into situations where you want the application to be able to react to something happening in the shared layer. However, since the shared layer is intentionally ignorant of any specific platform, making a direct connection here can be difficult. One option would be to use the abstraction pattern and abstract out everything in the user interface you might use, such as showing an alert message or a progress indicator. That is generally not a good idea when working with any user interface functionality, since it starts to force the same interface paradigms on all platforms and defeats the entire purpose of this approach to cross-platform development. Why should the Windows Phone application have to show an alert just because the Android application does? Forcing this requirement will lead to business logic that is tightly coupled to the user interface. A pattern that is especially useful in decoupling business logic from the user interface is the observer pattern.

The observer pattern is a messaging pattern in which an object, the subject, can publish updates about what it’s doing. Other objects, the observers, can subscribe to these updates and receive notifications when they occur (see Figure 3-4). In this model, the subject can publish these updates when it needs to without having to worry about whether or not there are any observers watching for them. This pattern is commonly found in UI frameworks where you can subscribe ...

Get Mobile Development with C# 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.