|
Posted by Michael Fesser on 11/28/06 21:47
..oO(Tony Marston)
>I disagree. it is *not* necessary for the simple reason that the code will
>perform exactly the same function whether methods and properties are marked
>as public/private/protected or not.
Then why do we use OOP and high-level languages like PHP at all? Pure
hand-written assembler code will perform exactly the same function.
>> It prevents developers from doing things that shouldn't be done, for
>> example calling an internal method out of context. I don't want all my
>> methods being publicly available, simply in order to avoid errors and
>> unpredictable results.
>
>That is a matter for programmer discipline, it is not a matter of additional
>functionality. The code will do exactly the same with or without it.
The code written in a language like Delphi for example will also do
exactly the same with all type checks, range checks, overflow checks
etc. turned off. But does it make sense to do that and just rely on
"programmer discipline"? No, it doesn't, because it will lead to
erroneous code on the long run.
Compilers are able to automatically check a lot of things and warn the
developer if he made a mistake. Such checks and restrictions don't add
any functionality, but are necessary in order to write reliable code.
The same goes for visibility declarations. I don't rely on discipline or
a comment like "please don't call this method". If a method is not meant
to be called directly then it's declared as such - problem solved.
Micha
Navigation:
[Reply to this message]
|