[thelist] Object Oriented Programming

David Miller david at deadpansincerity.com
Sat Jun 4 04:38:31 CDT 2011


http://programmers.stackexchange.com/questions/81419/do-i-really-need-oop-for-my-kind-of-job-after-10-years-i-think-i-dont/81425#81425

xx

On 2 June 2011 14:23, David Kaufman <david at gigawatt.com> wrote:

> Hi Kevin,
>
> Despite the oft-cited "pillars", the best explanation I've ever heard of OO
> was (not coincidentally) the simplest.  I think it was in the second
> paragraph of a text book and it was the person/employee classes example
> which you've probably seen as well, where the developer codes a Person class
> to instantiate Person objects with attributes like first_name, last_name,
> date_of_birth, etc. and methods general to all people like age(), and can
> then reuse that code by inheriting from Person to create an Employee class,
> by simply adding employee-specific attributes and methods such as salary,
> department and, of course, terminate().
>
> When future needs arise, such as the need to treat hourly and salaried
> Employees differently, it is easy to create classes for those, by further
> subclassing Employee.  The HourlyEmployee class might only need to contain
> one method that overrides, say, compute_paycheck() implemented one way,
> while SalariedEmployee has the same method implemented a different way.
>
> To me the example illustrates the (alleged) benefits of OO Abstraction,
> Encapsulation and Inheritance much better than the definitions of those
> concepts do, and may do so in fewer syllables!  Bu then, for me, information
> is like code: less is more :-)
>
> I will add that: I do wish I'd been taught in school that, while this type
> of class inheritance was *designed* to ease development and maintenance of
> code with oodles of opportunities for code reuse, in the real world it
> seldom works out that way.  In my experience, the class stack itself tends
> to add more complexity, inefficiency, and plain old bugs than the developer
> would have had to contended with, had she just reused code in other
> (non-hierarchical) ways.
>
> -dave
>
>
> On 5/30/2011 6:17 PM, Kipper Timmins wrote:
> > Hi all,
> >
> > I was wondering if any of you could offer your opinion with regards
> > to what Object Oriented Programming actually is. Most developers
> > will know how to use it, however it seems defining it is full of a
> > lot of different opinions.
> >
> > My current take on the foundations of OO (before we move further
> > into the topic) is the following:
> >
> > 4 key pillars/concepts
> >
> > Encapsulation : The ability to logically group functionality
> > together into a meaningful concept (object) without defining access
> > rights to the information.
> > Abstraction : The ability to remove irrelevant information for the
> > task at hand. i.e. a bank not holding records of your favourite
> > colour on your account records because the information has no
> > purpose there.
> > Inheritance : The ability to generalise concepts to improve
> > reusability.
> > Polymorphism : Early binding – Same method name with different
> > argument signature (usually within the same class). Late binding –
> > Same method name, same argument signature, different functionality
> > (between inherited classes)
> >
> > I would really appreciate any of you sharing your thoughts on this.
> >
> > Many thanks,
> >
> > Kevin Timmins
> >
> --
>
> * * Please support the community that supports you.  * *
> http://evolt.org/help_support_evolt/
>
> For unsubscribe and other options, including the Tip Harvester
> and archives of thelist go to: http://lists.evolt.org
> Workers of the Web, evolt !
>



-- 
Love regards etc

David Miller
http://www.deadpansincerity.com
07854 880 883


More information about the thelist mailing list