I'm struggling with the best location to put some methods that will be used for both loading a session-based instance as well as performing simple actions.
For example, I have three components: AceLinkUser --The main component --Is aware of the user; stores data in an instance variable --An instance of this will be stored in the session scope --Calls methods from ActiveDirectoryService to load data during Init() --Calls methods from UserService to load data during Init() UserService --Used to gather user-related information --Is unaware of data; only returns data to the caller; no instance variables --Calls methods from ActiveDirectoryService --Contains methods that pull information from other data sources ActiveDirectoryService --Communicates with Active Directory --Is unaware of data; stores connection information in an instance variable --Does not consume any other components --Contains the main LDAP query method --Contains other utility methods that use the LDAP query method As you can see, AceLink user calls the other two components. UserService, in turn, may also call the ActiveDirectoryService component. To instantiate my AceLinkUser object, I need to know if a user is a faculty member. This information is stored in an Active Directory domain group. Currently, AceLinkUser's Init() calls "IsFaculty(username) method from the UserService component. I could have also placed this same method in the ActiveDirectoryService component, but I felt it would be best to "abstract" the call by creating a UserService component. Is it best to keep the methods "at the lowest level" in the component organization? Where is the best location for IsFaculty()? Is it bad to have a single component call a common component directly AS WELL AS call a compoent that, in turn, calls the common component? I'm not really concerned about performance at this time. I'm only interested in how components would be best structured in this example. Thanks M!chael A. Dawson Group Manager, Programming and Software Development Office of Technology Services University of Evansville 1800 Lincoln Avenue Evansville, IN 47722 812-479-2581 ---------------------------------------------------------- You are subscribed to cfcdev. To unsubscribe, send an email to [EMAIL PROTECTED] with the word 'unsubscribe cfcdev' in the message of the email. CFCDev is run by CFCZone (www.cfczone.org) and supported by Mindtool, Corporation (www.mindtool.com).
