Each component in ACP is highly complex and as mentioned in our design pattern, we would like to achieve low coupling and high cohesion among the classes.
By introducing the concept of a Manager and Store for each component, we reduce its complexity and thus ease the process of development of each component. This also limits the possibility of accessing the database directly. In addition, splitting each component into Manager and Store helps us achieve the 2 design attributes, low coupling and high cohesion.
In general, Manager handles the data manipulations and processing as well as acting as a shield to limit the access of database manipulation functions. The Store handles operations related to database such as, retrieving, storing and deletion. By doing so, it achieves high cohesion as it ensures that the classes are focused and and does the things it is responsible. This also achieve low coupling, for example, if there are changes in the database we only have to make changes in the Store class.