Getting rid of module-specific control logic
If you want to provide Views with your module, dependent on enabled modules, you can implement

hook_views_default_views


  This hook allows modules to provide their own views which can either
  be used as-is or as a "starter" for users to build from.
  
  This hook should be placed in MODULENAME.views_default.inc and it will
  be auto-loaded. MODULENAME.views_default.inc must be in the directory
  specified by the 'path' key returned by MODULENAME_views_api(), or the
  same directory as the .module file, if 'path' is unspecified.
  
  The $view->disabled boolean flag indicates whether the View should be
  enabled (FALSE) or disabled (TRUE) by default.


In that hook implementation, you can check if the relevant module is enabled with module_exists or function_exists when defining that View or component of the View and return the View definition(s) accordingly.