Fragile Base Class

Fragile Base Class

The fragile base class problem is a fundamental architectural problem of object-oriented programming systems where base classes (superclasses) are considered "fragile" because seemingly safe modifications to a base class, when inherited by the derived classes, may cause the derived classes to malfunction. The programmer cannot determine whether a base class change is safe simply by examining in isolation the methods of the base class.

One possible solution is to make instance variables private to their defining class and force subclasses to use accessors to modify superclass states. A language could also make it so that subclasses can control which inherited methods are exposed publicly. These changes prevent subclasses from relying on implementation details of superclasses and allow subclasses to expose only those superclass methods that are applicable to themselves.

Another alternative solution could be to have an interface instead of superclass.

Read more about Fragile Base Class:  Solutions

Famous quotes containing the words fragile, base and/or class:

    My children have taught me things. Things I thought I knew. The most profound wisdom they have given me is a respect for human vulnerability. I have known that people are resilient, but I didn’t appreciate how fragile they are. Until children learn to hide their feelings, you read them in their faces, gestures, and postures. The sheer visibility of shyness, pain, and rejection let me recognize and remember them.
    Shirley Nelson Garner (20th century)

    I think it is worse to be poor in mind than in purse, to be stunted and belittled in soul, made a coward, made a liar, made mean and slavish, accustomed to fawn and prevaricate, and “manage” by base arts a husband or a father,—I think this is worse than to be kicked with hobnailed shoes.
    Frances Power Cobbe (1822–1904)

    Mankind divides itself into two classes,—benefactors and malefactors. The second class is vast, the first a handful.
    Ralph Waldo Emerson (1803–1882)