Re: Fundamental question about ADTs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Because the OOP religion requires everything to be done with methods?

Remember CC comes from the MSFT world, not the PHP corner of it. And in the larger world, public properties of your class, such as Caption, have corresponding local vars such as m_caption. That is, Caption is not manipulated directly by its class, and can only be set or read outside of the class through the class's set and get methods.

Seems a bit cumbersome, but does allow the class to be protected against dirty data by checking anything passed to it throug InstanceofCaptio=>SEt($somestring).

Hope this is helpful. In the Visual FoxPro world the caption, if it was public, could be set with CaptionInstance.Caption = somevar.

Regards - Miles

At 08:35 AM 7/29/2005, Jasper Bryant-Greene wrote:
Hi all

Recently I've been reading /Code Complete/ by Steve McConnell, and in it he recommends the use of ADTs, or Abstract Data Types, which I have been thinking about implementing in a major project I am currently embarking on.

Basically the question that I have for the list is this:

If I have a relatively simple class, for example Photo, then why does McConnell recommend that I do this:

<?php
$caption = $instanceOfPhotoClass->getCaption();
//do something with $caption
$instanceOfPhotoClass->setCaption($caption);
?>

Rather than this:

<?php
$caption = $instanceOfPhotoClass->caption;
// do something with $caption
$instanceOfPhotoClass->caption = $caption;
?>

I'm just looking for some alternative explanations to what McConnell offers in the book. I can understand that the first example allows me to "know" when an attribute has been modified... but it annoys me that I have code like this:

class Photo {
        private $caption;

        [...]

        public function setCaption($newCaption) {
                $this->caption = $newCaption;
        }
}

It just seems so pointless......

Thanks in advance for any comments.

Jasper

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


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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux