Finally I have got this clear in my head, thanks to this nice piece of explanation.
Aggregate routes are quite like generate routes in that they become active when a contributing route is present from a peer or neighbour. What’s different is that the aggregate route always has a discard or reject, so isn’t used to forward traffic. A generate route has a preferred contributing route, and this is used to forward the traffic even in the event that there isn’t a contributing route matching the packet’s destination.
In real-world usage, aggregates are used by people to summarise their address space into a single block to keep the Internet routing table smaller. Generate routes are usually used at the edge of a network to generate a conditional default route into the IGP if there are any routes received from the upstream ISP.