OOP Reassigned

esse quam videri
Revision as of 17:55, 15 April 2009 by Jeff (talk | contribs) (Strategy Pattern)
Jump to: navigation, search


Duck Study

Problems with inheritance

The super class Duck has a swim method.

Duck.swim()

Any class that subclasses the duck class will inherit the swim() method. So far so good all ducks swim

The super class also has a fly() method sa all classes that inherit from duck will get the fly() method.

All ducks don't fly...

Controls is an example of good inhertance

http://iam.colum.edu/oop/classsource/class11/controls.aspx

see

 Hierarchy

Object ---> Control---> WebControl---> BaseDataBoundControl ---> DataBoundControl --->ListControl ---> DropDownList

Interfaces

Implements A

Interfaces are a alternative to inheritance that creates a polymorphic contract between classes. The classes the implements an interface all have the same properties and methods and can be used interchangeably.

Interfaces are often used to implement behaviors.

  • IRaceable
  • IWalkable
  • IDisposable
  • IPhone

Strategy Pattern

http://www.dofactory.com/Patterns/PatternStrategy.aspx

Strategy Pattern

Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it.

Ducks From Book

http://iam.colum.edu/oop/browser/browser.aspx?f=/classsource/class11/Duck

http://www.dofactory.com/Patterns/PatternStrategy.aspx

Pretty good example of the strategey method in action.

Characters

Homework

Create Characters class and weapons class that uses the strategy pattern