Critique of Class-based Models
Class-based languages, or, to be more precise, typed languages, where subclassing is the only way of subtyping, have been criticized for mixing up implementations and interfaces—the essential principle in object-oriented programming. The critics say one might create a bag class that stores a collection of objects, then extends it to make a new class called a set class where the duplication of objects is eliminated . Now, a function that takes a bag class may expect that adding two objects increases the size of a bag by two, yet if one passes an object of a set class, then adding two objects may or may not increase the size of a bag by two. The problem arises precisely because subclassing implies subtyping even in the instances where the principle of subtyping, known as the Liskov substitution principle, does not hold. Therefore normally one must distinguish subtyping and subclassing. Most current object-oriented languages distinguish subtyping and subclassing, however some approaches to design do not.
Also, another common example is that a person object created from a child class cannot become an object of parent class because a child class and a parent class inherit a person class but class-based languages mostly do not allow to change the kind of class of the object at runtime. For class-based languages, this restriction is essential in order to preserve unified view of the class to its users. The users should not need to care whether one of the implementations of a method happens to cause changes that break the invariants of the class. Such changes can be made by destroying the object and constructing another in its place. Polymorphism can be used to preserve the relevant interfaces even when such changes are done, because the objects are viewed as black box abstractions and accessed via object identity. However, usually the value of object references referring to the object is changed, which causes effects to client code.
Read more about this topic: Class-based Programming
Famous quotes containing the words critique of, critique and/or models:
“Wagners art is the most sensational self-portrayal and self- critique of German nature that it is possible to conceive.”
—Thomas Mann (18751955)
“... the outcome of the Clarence Thomas hearings and his subsequent appointment to the Supreme Court shows how misguided, narrow notions of racial solidarity that suppress dissent and critique can lead black folks to support individuals who will not protect their rights.”
—bell hooks (b. c. 1955)
“Friends broaden our horizons. They serve as new models with whom we can identify. They allow us to be ourselvesand accept us that way. They enhance our self-esteem because they think were okay, because we matter to them. And because they matter to usfor various reasons, at various levels of intensitythey enrich the quality of our emotional life.”
—Judith Viorst (20th century)