The Persistence layer
Since we had a single product, we just instantiated it in the controller itself and successfully showed the product information on our web page. But a typical web store would contain thousands of products, so all the product information for them would usually be stored in a database. This means we need to make our
ProductController smart enough to load all the product information from the database into the model. But if we write all the data retrieval logic to retrieve the product information from the database in the
ProductController itself, our
ProductController will blow up into a big chunk of files. And logically speaking, data retrieval is not the duty of the controller because the controller is a Presentation layer ...