Great example Steve!! I've been reading along with Ian, letting him ask all the "dubmd questions" (just kidding Ian), but all the while I've been learning right along with him.
Thanks a lot. <!----------------//------ andy matthews web developer certified advanced coldfusion programmer ICGLink, Inc. [EMAIL PROTECTED] 615.370.1530 x737 --------------//---------> -----Original Message----- From: Steve Brownlee [mailto:[EMAIL PROTECTED] Sent: Wednesday, May 17, 2006 1:55 AM To: CF-Talk Subject: RE: OOD/Design Patterns and ColdFusion. Ian, I think this project is a perfect place to start since you're only dealing with one object and its data. I'll provide my thoughts and hopefully it will help. One thing I want to say is that you're still performing the steps procedurally, but the data is manipulated as attributes of an object. You are still going to create a form and then submit to a processing page that validates everything. How you build the application remains unchanged. > But I can not convert this to an object orientated design. I > can create a simple object that would represent a trima > machine which I believe is often called a bean You're on the right track here. You create the Trima Bean. It simply holds the attributes and get/set methods for each attribute of a trima machine. Since the bean's function is to accept and give the data while it's being manipulated, the validation should be done at this point. > I think I understand how one would separate the database > logic into a DAO. Correct, the TrimaDAO handles *all* access to the datasource. This is its only purpose, which is why the data should not be validated here. It has the CRUD methods [create/read/update/delete]. Each of these methods has one argument which accepts a Trima Bean which is a struct. <cfargument name="TrimaBean" type="struct" required="true"> So a sample call would be: trimaDAO = createobject("component", "com.bloodsource.trimaDAO"); trimaDAO.update(trimaBean); > Is it good or bad to put bad > and/or partial data into the bean because some of the form > data was good and some was bad? IMHO, since validation is done by the bean, partial data in one of the attributes is not acceptable. > How does one use a form first to show the current bean data and > then to show the form submitted data with error feedback? FORM PAGE -------------- <cfscript> trimaBean = createobject("component", "com.bloodsource.trimaBean"); trimaDAO = createobject("component", "com.bloodsource.trimaDAO"); trimaBean.setMachineID("64"); currentTrimaBean = trimaDAO.read(trimaBean); </cfscript> <form action="ProcessTrimaBean.cfm"> <input type="text" name="PlateletLevel" value="#currentTrimaBean.getPlateletLevel()#"> <input type="text" name="BloodType" value="#currentTrimaBean.getBloodType()#"> etc... </form> PROCESSING PAGE ------------------ <cftry> <cfscript> trimaBean = createobject("component", "com.bloodsource.trimaBean"); trimaDAO = createobject("component", "com.bloodsource.trimaDAO"); trimaBean.setPlateletLevel(form.PlateletLevel); trimaBean.setBloodType(form.BloodType); etc... trimaDAO.update(trimaBean); </cfscript> <cfcatch> <cfset alertMessage = trimaBean.invalidDataMessage> -- DISPLAY ERROR INFORMATION HERE -- </cfcatch> <cftry> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Message: http://www.houseoffusion.com/lists.cfm/link=i:4:240751 Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4 Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4 Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4 Donations & Support: http://www.houseoffusion.com/tiny.cfm/54