When working in different projects, reviewing ADF code and doing quality audits - one of the most often encountered issues is oversized Application Module Implementation class. Let's say there are 20 - 30 use cases based on the same Application Module (which is perfectly fine) and all the custom methods from these use cases are implemented in the single class - Application Module Implementation class. It becomes hard to maintain oversized class and even hard to read. Very often these custom methods are even not reusable across different use cases, it just developer decided to implement them all in the same place. In some cases we must implement custom methods in Application Module Implementation class: method is accessing different VO instances, method is not really related to some specific VO, etc. But in many cases, custom method works only with single VO instance - then it can be moved into VO Implementation class.
Here is the example - instead of letting grow Application Module Implementation class without any limit:
Try to move as much as possible of custom code related to single VO instance into VO Implementation class:
You can expose custom method from VO Implementation class to the client interface and make it available in Data Control:
Custom method from VO Implementation class is available in Data Control under VO instance:
Call Test Method button from ADF UI invokes custom method created in VO Implementation class and referenced through Data Control:
Here is the example - instead of letting grow Application Module Implementation class without any limit:
Try to move as much as possible of custom code related to single VO instance into VO Implementation class:
You can expose custom method from VO Implementation class to the client interface and make it available in Data Control:
Custom method from VO Implementation class is available in Data Control under VO instance:
Call Test Method button from ADF UI invokes custom method created in VO Implementation class and referenced through Data Control:
Here you can download sample application for this post - VOImplCustomMethodApp.zip.