When to use CFCs



You can use CFCs in the following ways:

  • Developing structured, reusable code

  • Creating web services

  • Creating Flash Remoting elements

  • Using asynchronous CFCs

Developing structured, reusable code

CFCs provide an excellent method for developing structured applications that separate display elements from logical elements and encapsulate database queries. You can use CFCs to create application functionality that you (and others) can reuse wherever needed, like user-defined functions (UDFs) and custom tags. If you want to modify, add, or remove component functionality, you make changes in only one component file.

CFCs have several advantages over UDFs and custom tags. These advantages, which CFCs automatically provide, include all of the following:

  • The ability to group related methods into a single component, and to group related components into a package

  • Properties that multiple methods can share

  • The This scope, a component-specific scope

  • Inheritance of component methods and properties from a base component, including the use of the Super keyword

  • Access control

  • Introspection for CFC methods, properties, and metadata

CFCs have one characteristic that prevents them from being the automatic choice for all code reuse. It takes relatively more processing time to instantiate a CFC than to process a custom tag. In turn, it takes substantially more time to process a custom tag than to execute a user-defined function (UDF). However, after a CFC is instantiated, calling a CFC method has about the same processing overhead as an equivalent UDF. As a result, do not use CFCs in place of independent, single-purpose custom tags or UDFs. Instead, use CFCs to create bodies of related methods, particularly methods that share properties.

For more information about UDFs, custom tags, and other ColdFusion code reuse techniques, see Creating ColdFusion Elements.

Creating web services

ColdFusion can automatically publish CFC methods as web services. To publish a CFC method as a web service, you specify the access="remote" attribute in the method’s cffunction tag. ColdFusion generates all the required Web Services Description Language (WSDL) code and exports the CFC methods. For more information on creating web services in ColdFusion, see Using Web Services.

Creating Flash Remoting elements

Adobe® Flash® applications that use Flash Remoting can easily take advantage of ColdFusion components for business logic. In a CFC, the cffunction tag names the function and contains the application logic, and the cfreturn tag returns the result to Flash.

Note: For ColdFusion component methods to communicate with Flash applications, set the access attribute of the cffunction tag to remote.

For more information on creating CFCs for Flash Remoting, see Using Flash with CFCs.

Using asynchronous CFCs

ColdFusion provides an event gateway that lets you send a message to a CFC asynchronously. This gateway lets you initialize processing by a CFC without waiting for the CFC to complete or return a value. You can use asynchronous CFCs that use this gateway for the following:

  • Reindexing a Verity collection

  • Logging information

  • Running batch processes

For more information on using asynchronous CFCs, see About event gateways.