Hello @mahesh_gunaje
1. Model-View-Controller (MVC) Pattern:
AEM uses the MVC pattern to separate the data models (Java classes or Sling models), the views (JSP or HTL templates), and the controllers (Java classes or Sling servlets) for rendering web pages.
2. Singleton Pattern:
Example: AEM uses the Singleton pattern to ensure that there is only one instance of critical objects like the OSGi service component or the AEM service.
3. Factory Pattern:
AEM employs the Factory pattern to create objects based on a common interface or abstract class. For instance, the OSGi service component factory provides multiple instances of the same service implementation.
4. Adapter Pattern:
AEM uses the Adapter pattern to convert one interface into another. For example, the Sling Adapter Factory enables adapting a resource to various adaptable types. Example: Resource -> Page
5. Composite Pattern:
AEM leverages the Composite pattern to treat a group of objects as a single object. For instance, AEM's component-based architecture allows creating composite components with child components.
6. Observer Pattern:
AEM utilizes the Observer pattern to establish a one-to-many dependency between objects. For instance, AEM's Event Listeners and Event Handlers follow the Observer pattern to react to specific events.