|
Posted by Tony Marston on 11/28/06 17:50
"Jerry Stuckle" <jstucklex@attglobal.net> wrote in message
news:PeudnRKltLJsufHYnZ2dnUVZ_u2dnZ2d@comcast.com...
> Tony Marston wrote:
>> "Jerry Stuckle" <jstucklex@attglobal.net> wrote in message
>> news:j9-dnQB80fVLOvbYnZ2dnUVZ_rOdnZ2d@comcast.com...
>>
>>>Tony Marston wrote:
>>>
>>>>"Jerry Stuckle" <jstucklex@attglobal.net> wrote in message
>>>>news:Ib6dna_BtYQSifbYnZ2dnUVZ_sSdnZ2d@comcast.com...
>>>>
>>>>
>>>>>jopperdepopper wrote:
>>>>>
>>>>>
>>>>>>>You should read "can be accessed everywhere".
>>>>>>>
>>>>>>>Private members can be accessed by members of the class only.
>>>>>>>Protected members can be accessed by members of the class or a
>>>>>>>derived
>>>>>>>class.
>>>>>>>Public members can be accessed by anyone, including other classes,
>>>>>>>functions and any other code.
>>>>>>
>>>>>>
>>>>>>
>>>>>>Thanks Jerry. I'm trying to make a bit of sense of the php 5 approach
>>>>>>to classes, and so far having a hard time. I fail to see the 'why'
>>>>>>behind the 'public, protected and private' and stuff like abstraction,
>>>>>>interfaces and whatnot.
>>>>
>>>>
>>>>Intefaces are not necessary in PHP. Once you have defined a method it is
>>>>a total waste to time to also define an interface. Interfaces are a
>>>>"fix" in those languages as a means of dealing with optional arguments
>>>>and statyic typing. PHP has ifferent ways of dealing with bth of these,
>>>>therefore interfaces serve no useful purpose.
>>>>
>>>
>>>Ah, the great Tony Marston is back to trolling again.
>>>
>>>Wrong. In OO terms, the interface is the way to interact with the
>>>object. It consists of all public members - both methods (functions, in
>>>PHP) and variables. And for derived classes, the base class adds
>>>protected members.
>>>
>>>A PHP interface is something entirely different.
>>
>>
>> I disagree. It is possible to define a function (method) within a class,
>> then to define a separate thing called an "interface". It is possible
>> access
>> the function without using the interface, therefore the interface is not
>> necessary.
>>
>
> Tony,
>
> You really need to learn about OO before spouting off. In OO terms, an
> interface is something entirely different than a PHP interface.
How so? All the documentation I have seen describes how an interface simply
describes a method which it imlements. If it is possible to access a method
(a function in PHP) without going though an interface, ten an interface is
not necessary in any language.
> PHP is not the only OO language. Some don't even have a term "interface"
> as part of the language. But the still have an interface.
>
> Try some of the books by James Rumbaugh, Grady Booch and/or Ivar Jacobson.
>
>>
>>>>>>Feels like things are being over-complicated
>>>>>>somehow... or it's just my being inexperienced on this...
>>>>>>
>>>>>>Any other reading material on this suggested, someone?
>>>>>>
>>>>>
>>>>>Look for some good books on OO theory and design.
>>>>>
>>>>>Two of the concepts in OO are 'encapsulation' and 'methods'.
>>>>>
>>>>>Encapsulation means the internals of an object are managed only by that
>>>>>object and are not available to anyone else. In PHP these are private
>>>>>members.
>>>>
>>>>
>>>>Wrong. Encapsulation means that the data and the functions which operate
>>>>on that data are contained (encapsulated) within a single object. While
>>>>the methods (functions) thenselves may be visible the code behind those
>>>>methods (i.e. the implementaton behind those methods) is not.
>>>>Encapslation is NOT about hiding information, it is about hiding the
>>>>implementation. It is not necessary to use public/private/protected on
>>>>any methods or properties. It does not add any functionality, it merely
>>>>creates restrictions which often get in the way.
>>>>
>>>
>>>Wrong again, Tony. Encapsulation means internal representations of the
>>>object are not visible outside of the class. Just like the base &
>>>mantissa are not visible outside of a floating point number.
>>
>>
>> I disagree. Encapsulation means that both the data and the methods which
>> operate on that data are contained within a single unit or "capsule". The
>> data names and the method names may be visible, it is only the code which
>> lies behind each method name which is invisible. A piece of data may be
>> accessed directly, as in $object->var, or it may be accessed through a
>> getter, as in $object->getVar().
>>
>> If you bothered to read the right books you will see that encapsulation
>> means "implementation hiding" and not "information hiding".
>>
>
> Again, read the experts before spouting off. You have repeatedly shown
> how little you understand about OO programming techniques.
>
> And yes, encapsulation is "implementation hiding". And the variables are
> part of the IMPLEMENTATION.
I disagree. Inplementation is code, information is data. If you don't
believe me then read "Encapsulation is not information hiding" at
http://www.javaworld.com/javaworld/jw-05-2001/jw-0518-encapsulation.html and
also "Abstraction, Encapsulation, and Information Hiding" at
http://www.itmweb.com/essay550.htm
>>
>>>>>Methods are implemented as functions in PHP. They operate on the
>>>>>object.
>>>>
>>>>
>>>>That's one thing you got right.
>>>>
>>>
>>>More than you got right. Go crawl back into your hole and don't come out
>>>again until you know what you're talking about.
>>
>>
>> I do know what I'm talking about..
>>
>
> Then why do you continually disagree with the recognized experts in the OO
> community, like the ones I mentioned above?
I disagree with YOU simply because you clam to be a recognised expert when
in fact you are no such thing. I keep finding papers on the internet which
disagree with your explanations, yet you persist in claiming that you are
right and everybody who dares to disagree with you is wrong. Such arrogance!
--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org
Navigation:
[Reply to this message]
|