> For the complete documentation index, see [llms.txt](https://freshieorbital.gitbook.io/team-fitbob/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://freshieorbital.gitbook.io/team-fitbob/software-engineering-practices/software-design-patterns/abstraction-occurrence-pattern.md).

# Abstraction Occurrence Pattern

In our application, we often create similar components.&#x20;

A good example would be rendering "food items" in a [`FlatList`](https://reactnative.dev/docs/flatlist)

Each "food item" is a component, with the following information:&#x20;

* title
* calories

To achieve this, we created a component titled `FoodItem`, which is repeatedly used by the FlatList to create new components on the user's screen.&#x20;

We made use of this design pattern in other parts of our application, and have collated a collection of such components in [this folder](https://github.com/jamesyeap/freshie/tree/main/_components/_molecules).
