8.1. Episodes

Intent

Give the appearance of executing more swiftly by delaying all non-essential operations until after the main task has been completed.

AKA

Staged Initialization, Phased Initialization, and Staged Start-up

8.1.1. Problem

8.1.1.1. Context

You need to perform a significant task on behalf of a client that can be broken down into a number of separate sequential episodes, only some of which need to be performed immediately.

8.1.1.2. Summary
  • The client wants the task to appear to be completed as quickly as possible.

  • It is important to you to be able to configure how the task is performed either now or in future.

  • You want any optimizations to impact the maintainability of your component as little as possible.

8.1.1.3. Description

When you perform any non-trivial task, it will be formed of many individual parts that need to be completed. These might vary from something as simple as allocating an in-memory buffer to things as complex as checking the integrity of a database. Regardless of what these operations are, they each take some period of time to be performed.

This applies as much to applications interacting with the end user as to services even though the tasks they perform may differ. For example, an application needs to lay out UI controls on the screen, load images or load localized text whilst a service wouldn't need to do any these. However, the same general problem of a task for which many operations need to be performed is applicable to both situations. ...

Get Common Design Patterns for Symbian OS: The Foundations of Smartphone Software 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.