private Object applyStrategies(BeanCreationDirective directive, List<BeanCreationStrategy> strategies) {
        // TODO create method lookup by annotation/convention
        // TODO Cache ConstructionStrategy (reuse caching infrastructure)
        // TODO Check resulting type in each method
        // TODO Directive toString()
        // TODO review and document

        for (BeanCreationStrategy strategy : new CopyOnWriteArrayList<>(strategies)) {
            if (strategy.isApplicable(directive)) {
                return strategy.create(directive);
            }
        }
        return null;
    }
Internal class that contains the logic used to create a new instance of the destination object being mapped. Performs
various checks to determine how the destination object instance is created. Only intended for internal use.
core/src/main/java/com/github/dozermapper/core/factory/DestBeanCreator.java