> > One personal suggestion: you could directly put the code from
> > initialize_customer() into the constructor.
>
> but i'm thinking that i might, at some point, want to use that method
> after the object has been instantiated. i can't think of a specific
> case, but i'm only imagining that it's possible.

It could be useful when retrieving real data is expensive.

I've been recently working with a data set that is derived from a
highly-relational database served over HTTP via XML. It's time consuming
to pull new information about a record and not all information is used
everywhere, so I've been using a structure similar to yours with a
lazy-load component -- the data source isn't actually accessed for a
particular piece of information until that piece of information is
specifically requested.

In the example below, properties one and two might refer to linked or
nested objects, each with a high cost of retrieval. The database access
code that is now in your initialize_customer() method gets split up into
logical chunks, and placed in the property_*() methods.

Paraphrased/contrived example:

        class thing
        {
                var $id;
                var $property_one;
                var $property_two;

                function thing($id)
                {
                        $this->id = $id;
                }

                function get_property_one()
                {
                        if(!$this->property_one) {
                                // perform request for property one,
                                // set $this->property_one
                        }
                        return $this->property_one;
                }

                function get_property_two()
                {
                        if(!$this->property_two) {
                                // perform request for property two,
                                // set $this->property_two
                        }
                        return $this->property_two;
                }
        }


---------------------------------------------------------------------
michal migurski- contact info and pgp key:
sf/ca            http://mike.teczno.com/contact.html

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to