[PRL] The Selfish Class

Mitchell Wand wand at ccs.neu.edu
Mon Mar 28 12:05:05 EST 2005


<http://www.joeyoder.com/papers/patterns/Selfish/selfish.html>

[This paper is kinda old, but I just saw it mentioned and thought you
might find it interesting.  Despite the title, there doesn't seem to
be very much in it that is specifically O-O. --Mitch]

Clipping:

This paper takes a code$,1ry(Bs-eye view of software reuse and evolution. A
code-level artifact must be able to attract programmers in order to
survive and flourish. The paper addresses the question of what an
object might do to encourage programmers to (re-)use it, as opposed to
using some other object, or building new ones. THE SELFISH CLASS
pattern shows how focusing on code, rather than systems, processes, or
personnel, can lead to fresh insights into software evolution and the
forces that drive it. 

The remaining patterns focus on more specific problems that evolving
artifacts might confront. A software artifact that WORKS OUT OF THE
BOX provides enough defaults to get the user up and running without
needing to know anything about the artifact. An artifact that presents
a LOW SURFACE-TO-VOLUME RATIO exposes its services via a relatively
compact external interface, while encapsulating significant internal
complexity. GENTLE LEARNING CURVE observes that artifacts that don$,1ry(Bt
pose an undue learning burden on beginners can win users, while
revealing additional complexity later. PROGRAMMING-BY-DIFFERENCE shows
how code can adapt without mutating. FIRST ONE$,1ry(BS FREE suggests that
giving your code away will help to make it popular. WINNING TEAM
suggests that you can ride the coattails of a winning system to
victory. 









More information about the PRL mailing list