Type generalization

Uses your system voice; voice and rate in settings.

Snapshot

≈ 2 min read

Names in other languages

No names in other languages are held for this entry yet.

Article bodies are English and are not machine-translated. A name in another language is not a translation of the article.

Type generalization is a technique commonly used in refactoring. The idea is to draw on the benefits of object-orientation and make more-generalized types, thus enabling more code sharing, leading to better maintainability as there is less code to write. Too-general code can, however, become completely useless, leading to spaghetti code doing effectively nothing. Type generalization refers to making more general or more abstract some subset of the traits of a specific type. A superclass has wider use than a specific subclass, and so is more 'general'. An example of generalizing a type would be moving a method from a child to a parent class for common use by all the parent class' children, not just the original child. Another example, in the Java programming language, would be access to an object via an interface which isn't tied into a specific implementation of that interface.

Type generalization is a technique commonly used in refactoring. The idea is to draw on the benefits of object-orientation and make more-generalized types, thus enabling more code sharing, leading to better maintainability as there is less code to write. Too-general code can, however, become completely useless, leading to spaghetti code doing effectively nothing. Type generalization refers to making more general or more abstract some subset of the traits of a specific type. A superclass has wider use than a specific subclass, and so is more 'general'. An example of generalizing a type would be moving a method from a child to a parent class for common use by all the parent class' children, not just the original child. Another example, in the Java programming language, would be access to an object via an interface which isn't tied into a specific implementation of that interface.

Text derived from https://en.wikipedia.org/w/index.php?oldid=1215733330 under CC BY-SA 4.0; modifications have been made.