There are some general guidelines that we can follow when designing solutions for the cross-cutting concerns that we need in our applications.
General guidelines for cross-cutting concerns
Identifying cross-cutting concerns
As an initial step, software architects must be able to identify the cross-cutting concerns. By recognizing common functionality across modules and layers of the system, we can consider how concerns can be abstracted so that they are not duplicated. In some cases, the common functionality is identical among its different usages, while in others, refactoring may be involved to make the logic generic enough to be reusable.