iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
The Hollywood Principle means that a framework or higher-level component controls when your code runs: you provide a handler, hook, or operation, and it calls that code at the appropriate point. The familiar shorthand is “Don’t call us, we’ll call you.” It describes a reversal in control flow—not a synonym for dependency injection.
How the Hollywood Principle works
In ordinary application-driven code, your program decides when to call a library operation. Under the Hollywood Principle, the framework owns the outer lifecycle and invokes your code at a designated extension point. You supply the behavior; the framework determines when to request it.
| # | Preview | Product | Price | |
|---|---|---|---|---|
| 1 |
|
Hollywood Tails: Famous Faces and the Dogs They Love | $33.55 | Buy on Amazon |
| 2 |
|
Jean Louis: Hollywood's Bombshell Designer | $59.99 | Buy on Amazon |
| 3 |
|
Paul R. Williams: Classic Hollywood Style | $49.60 | Buy on Amazon |
| 4 |
|
Hollywood Heroes: How Your Favorite Movies Reveal God | $16.13 | Buy on Amazon |
| 5 |
|
An Empire of Their Own: How the Jews Invented Hollywood | $11.09 | Buy on Amazon |
Martin Fowler describes this as Inversion of Control, also known as the Hollywood Principle: “Don’t call us, we’ll call you.” The point is not that every call is reversed. It is that a higher-level part of the system retains control of the overall process and calls lower-level or application-provided behavior when needed.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Examples: callbacks and Template Method
A framework callback
Imagine a GUI framework that owns the event loop. You register a button-click handler, then the framework calls that handler when the user clicks the button. You write the response, but you do not decide the exact moment in the event loop when it runs. A web framework can work similarly with a handler invoked for a particular request or lifecycle event.
#1 Best Overall
The callback is an extension point: a place where application code supplies behavior within a process controlled by the framework. Registering a callback alone does not guarantee that the overall design is loosely coupled; that depends on the interfaces and dependencies around it.
Template Method
Template Method shows the same control-flow arrangement in object-oriented code. A base class defines the broad steps of an algorithm and calls operations that a subclass can implement or override. The parent preserves the sequence; subclasses provide selected details. The Gang of Four’s Template Method description explicitly associates this inverted control structure with the Hollywood Principle.
Rank #2
Hollywood Principle, IoC, and dependency injection
Inversion of Control (IoC) is the broad idea that control over some part of a program is handed to an external framework or mechanism. The term is used in more than one way, so it helps to ask specifically what control is being inverted. In the Hollywood Principle’s common framework example, the relevant control is invocation timing.
Recommended Free Tools
Dependency Injection (DI) is a way to provide a component with the dependencies it needs rather than having it obtain them itself. DI can be used as an IoC technique, but it is about supplying dependencies; the Hollywood Principle, as used here, is about who decides when application behavior is invoked. They are related concepts, not interchangeable names. Fowler discusses this distinction in his explanation of Inversion of Control.
Rank #3
The Dependency Inversion Principle is a separate design principle concerning dependencies and abstractions. It should not be treated as another name for the Hollywood Principle.
How to recognize it in a design
When comparing a framework-driven design with application-driven code, look at three things:
- Who owns invocation timing? Does your code initiate the operation, or does a framework call your code as its lifecycle proceeds?
- Where are the extension points? Identify the registered callbacks, event handlers, hooks, or subclass operations where application behavior enters.
- What coordination does the design require? Note which component manages the lifecycle and what interfaces or dependencies the participating components need to communicate.
Johns Hopkins University’s design-pattern teaching material describes the high-level component as remaining in control and using a general interface to invoke low-level components. That is a useful way to inspect the structure without assuming that either framework-driven or application-driven control is always superior.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Where the phrase came from
Fowler’s historical account distinguishes the phrase from the technical term. He traces “Hollywood’s Law” to Richard Sweet’s 1983 paper on Mesa, quoting Sweet’s design goal as having a tool notify an application when a user wishes to communicate an event, rather than having the tool repeatedly ask the user for a command. This is Fowler’s account of the attribution; the linked article discusses Sweet’s paper rather than linking to the paper itself.
Best Value
Fowler traces the term “Inversion of Control” to Johnson and Foote’s 1988 paper “Designing Reusable Classes,” while noting that its authors said they could not remember where they first encountered the term. The two historical attributions are related, but they are not the same claim.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

