---
title: "Sequential coupling"
type: "antipattern"
slug: "sequential-coupling"
url: "http://localhost:3000/en/antipatterns/sequential-coupling.md"
description: "Design issue in object-oriented programming"
---
# Sequential coupling

> Design issue in object-oriented programming

In [object-oriented programming](https://en.wikipedia.org/wiki/Object-oriented%5Fprogramming "Object-oriented programming"), **sequential coupling** (also known as **temporal coupling**) is a form of [coupling](https://en.wikipedia.org/wiki/Coupling%5F%28computer%5Fprogramming%29 "Coupling (computer programming)") where a [class](https://en.wikipedia.org/wiki/Class%5F%28computer%5Fscience%29 "Class (computer science)") requires its [methods](https://en.wikipedia.org/wiki/Method%5F%28computer%5Fscience%29 "Method (computer science)") to be called in a particular sequence. This may be an [anti-pattern](https://en.wikipedia.org/wiki/Anti-pattern "Anti-pattern"), depending on context.

Methods whose name starts with Init, Begin, Start, etc. may indicate the existence of sequential coupling.

Using a [car as an analogy](https://en.wikipedia.org/wiki/Car%5Fanalogy "Car analogy"), if the user steps on the gas without first starting the engine, the car does not crash, fail, or throw an exception - it simply fails to accelerate.

**Sequential coupling** can be refactored with the [template method pattern](https://en.wikipedia.org/wiki/Template%5Fmethod%5Fpattern "Template method pattern") to overcome the problems posed by the usage of this [anti-pattern](https://en.wikipedia.org/wiki/Anti-pattern "Anti-pattern").
