Introduce Indirection

a feature heavily depended upon by many clients needs to be evolved
introduce an indirection level that decouples client code from a direct depencency upon the evolving feature

Context:

Both Hide Subsystem Complexity With Facade and Replace Singletons With Singleton are examples of Introduce Indirection where indirection level is used to encapsulate a design property that is difficult to control.

An indirection level that has outlived its purpose can be removed with Inline Indirection. However, keeping the indirection level around manytimes proves helpfull during later refactorings.

Introduce Indirection is a key refactoring in Break Module Depencencies With Adapter


Refactoring Thumbnails, Copyright © 2004 - 2005, Sven Gorts, All Rights Reserved.

[ Overview Page ] [ Thumbnail Catalog ]