[Tutor] Whats so good about OOP ?
Kent Johnson
kent37 at tds.net
Sat Mar 12 16:00:24 CET 2005
Mark Kels wrote:
> Hi list !
> I want to know whats so great in OOP...
> I have learned some of it, but I don't understand why everybody like
> it so much...
- One of the great challenges in programming is managing complexity. A program of any size is too
complex to hold in your brain all at once. Techniques for breaking up a program into understandable
pieces are essential. OOP gives you a way to break up a program into self-contained bundles of code
and data that become building blocks for other pieces of the program. OOP lets you create
abstractions that become components or tools for other abstractions.
- OOP enables many techniques for organizing code and reducing duplication. Many design patterns use
cooperating objects. For example Composite, Decorator, Facade, Proxy, Chain of Responsibility,
Command, Mediator, Observer, State, Strategy, Template Method... :-)
http://c2.com/cgi-bin/wiki?CategoryPattern
> Can anyone give me an example for a task that could be done only with
> OOP or will be much simpler to do with it ?
See this essay for some simple examples:
http://www.pycs.net/users/0000323/stories/15.html
Most modern GUI toolkits are heavily object-oriented including Tkinter and wxPython. Having a widget
as a clear abstraction is very useful.
Much of the Python standard library is object-oriented. Since Python offers a choice between
object-oriented and procedural style, if a library module is implemented with objects then
presumably the author thought it would be simpler that way.
Of course Python is profoundly object-oriented in its core - strings, integers, lists and dicts are
all objects providing simple abstractions of complex behaviour.
Kent
More information about the Tutor
mailing list