A CATO is a "Computing and Transfer Object". It's purpose is to sort, filter and connect objects which belong together as well as transfer these objects. It is intended to be used as a link between Controller and Views like DTOs, but with some features.

CATOs and DTOs explained:

The CATO contains the logic or uses another object for the required task(s).

About CATO properties:

CATOs in general:

This pattern was devised by Oliver Eglseder at 2015-12-17.

[1] Arrays may also be objects implementing Countable, Iterator AND ArrayAccess.