[Tutor] code smells: Object-orientation Abusers: switch statements
Alan Gauld
alan.gauld at btinternet.com
Sat Jan 4 21:54:08 CET 2014
I meant to add...
On 04/01/14 20:47, Alan Gauld wrote:
> Its called polymorphism and is one of the most powerful advantages of
> OOP since case or switch statements are one of the most fault prone
> structures in procedural programming.
> ...
> Without OOP you would need to do something like
>
> for shape in shapes:
> if shape['type'] == CIRCLE:
> result = circle_area(shape['radius'])
> elif shape['type'] == SQUARE:
> result = square_area(shape['length'])
> elif ....
>
> But with OOP we simply call each shapes area method and
> the interpreter works out which method to call:
>
> for shape in shapes:
> result = shape.area()
This reduction in code in switch statements (and similar savings in
other scenarios) is one of the reasons that OOP solutions are often much
shorter than non OOP programs for non-trivial cases.
Beginners often don't see these benefits because their short programs
only have one or two classes and the overhead of creating the classes
dwarfs the savings that might accrue. But in a big project where lots of
if/else type situations may arise the code savings can easily add up to
20-30%.
HTH
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.flickr.com/photos/alangauldphotos
More information about the Tutor
mailing list