skip to content
Refactoring to patterns Preview this item
ClosePreview this item
Checking...

Refactoring to patterns

Author: Joshua Kerievsky
Publisher: Boston : Addison-Wesley, ©2005.
Series: Addison-Wesley signature series.
Edition/Format:   Print book : EnglishView all editions and formats
Summary:

Provides an introduction to the theory and practice of pattern-directed refactorings: sequences of low-level refactorings that allow designers to safely move designs to, towards, or away from pattern  Read more...

Rating:

(not yet rated) 0 with reviews - Be the first.

Subjects
More like this

Find a copy in the library

&AllPage.SpinnerRetrieving; Finding libraries that hold this item...

Details

Document Type: Book
All Authors / Contributors: Joshua Kerievsky
ISBN: 0321213351 9780321213358
OCLC Number: 318400817
Notes: Incluye índice.
Description: xxvi, 367 p. : il. ; 24 cm.
Contents: Foreword by Ralph Johnson.Foreword by Martin Fowler.Preface.What Is This Book About?What Are the Goals of This Book?Who Should Read This Book?What Background Do You Need?How to Use This Book.The History of This Book.Standing on the Shoulders of Giants.Acknowledgments.1. Why I Wrote This Book.Over-Engineering.The Patterns Panacea.Under-Engineering.Test-Driven Development and Continuous Refactoring.Refactoring and Patterns.Evolutionary Design.2. Refactoring.What Is Refactoring?What Motivates Us to Refactor?Many Eyes.Human-Readable Code.Keeping It Clean.Small Steps.Design Debt.Evolving a New Architecture.Composite and Test-Driven Refactorings.The Benefits of Composite Refactorings.Refactoring Tools.3. Patterns.What Is a Pattern?Patterns Happy.There Are Many Ways to Implement a Pattern.Refactoring to, towards, and away from Patterns.Do Patterns Make Code More Complex?Pattern Knowledge.Up-Front Design with Patterns.4. Code Smells.Duplicated Code.Long Method.Conditional Complexity.Primitive Obsession.Indecent Exposure.Solution Sprawl.Alternative Classes with Different Interfaces.Lazy Class.Large Class.Switch Statements.Combinatorial Explosion.Oddball Solution.5. A Catalog of Refactorings to Patterns.Format of the Refactorings.Projects Referenced in This Catalog.A Starting Point.A Study Sequence.6. Creation.Replace Constructors with Creation Methods.Move Creation Knowledge to Factory.Encapsulate Classes with Factory.Introduce Polymorphic Creation with Factory Method.Encapsulate Composite with Builder.Inline Singleton.7. Simplification.Compose Method.Replace Conditional Logic with Strategy.Move Embellishment to Decorator.Replace State-Altering Conditionals with State 166Replace Implicit Tree with Composite.Replace Conditional Dispatcher with Command.8. Generalization.Form Template Method.Extract Composite.Replace One/Many Distinctions with Composite.Replace Hard-Coded Notifications with Observer.Unify Interfaces with Adapter.Extract Adapter.Replace Implicit Language with Interpreter.9. Protection.Replace Type Code with Class.Limit Instantiation with Singleton.10. Accumulation.Move Accumulation to Collecting Parameter.Move Accumulation to Visitor.11. Utilities.Chain Constructors.Unify Interfaces.Extract Parameter.Afterword by John Brant and Don Roberts.References.Index.
Series Title: Addison-Wesley signature series.
Responsibility: Joshua Kerievsky.

Reviews

User-contributed reviews
Retrieving GoodReads reviews...
Retrieving DOGObooks reviews...

Tags

Be the first.
Confirm this request

You may have already requested this item. Please select Ok if you would like to proceed with this request anyway.

Linked Data


\n\n

Primary Entity<\/h3>\n
<http:\/\/www.worldcat.org\/oclc\/318400817<\/a>> # Refactoring to patterns<\/span>\n\u00A0\u00A0\u00A0\u00A0a \nschema:Book<\/a>, schema:CreativeWork<\/a> ;\u00A0\u00A0\u00A0\nlibrary:oclcnum<\/a> \"318400817<\/span>\" ;\u00A0\u00A0\u00A0\nlibrary:placeOfPublication<\/a> <http:\/\/dbpedia.org\/resource\/Boston<\/a>> ; # Boston<\/span>\n\u00A0\u00A0\u00A0\nlibrary:placeOfPublication<\/a> <http:\/\/id.loc.gov\/vocabulary\/countries\/mau<\/a>> ;\u00A0\u00A0\u00A0\nschema:about<\/a> <http:\/\/experiment.worldcat.org\/entity\/work\/data\/15320924#Topic\/programacion_orientada_a_objetos<\/a>> ; # Programaci\u00F3n orientada a objetos<\/span>\n\u00A0\u00A0\u00A0\nschema:about<\/a> <http:\/\/experiment.worldcat.org\/entity\/work\/data\/15320924#Topic\/programacion_orientada_a_objetos_computadores<\/a>> ; # Programaci\u00F3n orientada a objetos (Computadores)<\/span>\n\u00A0\u00A0\u00A0\nschema:about<\/a> <http:\/\/experiment.worldcat.org\/entity\/work\/data\/15320924#Topic\/programas_y_sistemas_de_programacion_desarrollo<\/a>> ; # Programas y sistemas de programaci\u00F3n--Desarrollo<\/span>\n\u00A0\u00A0\u00A0\nschema:about<\/a> <http:\/\/experiment.worldcat.org\/entity\/work\/data\/15320924#Topic\/ingenieria_de_programas_y_sistemas_de_programacion<\/a>> ; # Ingenier\u00EDa de programas y sistemas de programaci\u00F3n<\/span>\n\u00A0\u00A0\u00A0\nschema:about<\/a> <http:\/\/experiment.worldcat.org\/entity\/work\/data\/15320924#Topic\/refactorizacion_de_software<\/a>> ; # Refactorizaci\u00F3n de software<\/span>\n\u00A0\u00A0\u00A0\nschema:about<\/a> <http:\/\/dewey.info\/class\/005.16\/e22\/<\/a>> ;\u00A0\u00A0\u00A0\nschema:about<\/a> <http:\/\/experiment.worldcat.org\/entity\/work\/data\/15320924#Topic\/modelos_para_software<\/a>> ; # Modelos para software<\/span>\n\u00A0\u00A0\u00A0\nschema:about<\/a> <http:\/\/experiment.worldcat.org\/entity\/work\/data\/15320924#Topic\/software_desarrollo<\/a>> ; # Software--Desarrollo<\/span>\n\u00A0\u00A0\u00A0\nschema:bookFormat<\/a> bgn:PrintBook<\/a> ;\u00A0\u00A0\u00A0\nschema:copyrightYear<\/a> \"2005<\/span>\" ;\u00A0\u00A0\u00A0\nschema:creator<\/a> <http:\/\/viaf.org\/viaf\/25711546<\/a>> ; # Joshua Kerievsky<\/span>\n\u00A0\u00A0\u00A0\nschema:datePublished<\/a> \"2005<\/span>\" ;\u00A0\u00A0\u00A0\nschema:exampleOfWork<\/a> <http:\/\/worldcat.org\/entity\/work\/id\/15320924<\/a>> ;\u00A0\u00A0\u00A0\nschema:inLanguage<\/a> \"en<\/span>\" ;\u00A0\u00A0\u00A0\nschema:isPartOf<\/a> <http:\/\/experiment.worldcat.org\/entity\/work\/data\/15320924#Series\/addison_wesley_signature_series<\/a>> ; # Addison-Wesley signature series.<\/span>\n\u00A0\u00A0\u00A0\nschema:name<\/a> \"Refactoring to patterns<\/span>\" ;\u00A0\u00A0\u00A0\nschema:numberOfPages<\/a> \"367<\/span>\" ;\u00A0\u00A0\u00A0\nschema:productID<\/a> \"318400817<\/span>\" ;\u00A0\u00A0\u00A0\nschema:publication<\/a> <http:\/\/www.worldcat.org\/title\/-\/oclc\/318400817#PublicationEvent\/boston_addison_wesley_2005<\/a>> ;\u00A0\u00A0\u00A0\nschema:publisher<\/a> <http:\/\/experiment.worldcat.org\/entity\/work\/data\/15320924#Agent\/addison_wesley<\/a>> ; # Addison-Wesley<\/span>\n\u00A0\u00A0\u00A0\nschema:workExample<\/a> <http:\/\/worldcat.org\/isbn\/9780321213358<\/a>> ;\u00A0\u00A0\u00A0\nwdrs:describedby<\/a> <http:\/\/www.worldcat.org\/title\/-\/oclc\/318400817<\/a>> ;\u00A0\u00A0\u00A0\u00A0.\n\n\n<\/div>\n\n

Related Entities<\/h3>\n
<http:\/\/dbpedia.org\/resource\/Boston<\/a>> # Boston<\/span>\n\u00A0\u00A0\u00A0\u00A0a \nschema:Place<\/a> ;\u00A0\u00A0\u00A0\nschema:name<\/a> \"Boston<\/span>\" ;\u00A0\u00A0\u00A0\u00A0.\n\n\n<\/div>\n
<http:\/\/dewey.info\/class\/005.16\/e22\/<\/a>>\u00A0\u00A0\u00A0\u00A0a \nschema:Intangible<\/a> ;\u00A0\u00A0\u00A0\u00A0.\n\n\n<\/div>\n
<http:\/\/experiment.worldcat.org\/entity\/work\/data\/15320924#Agent\/addison_wesley<\/a>> # Addison-Wesley<\/span>\n\u00A0\u00A0\u00A0\u00A0a \nbgn:Agent<\/a> ;\u00A0\u00A0\u00A0\nschema:name<\/a> \"Addison-Wesley<\/span>\" ;\u00A0\u00A0\u00A0\u00A0.\n\n\n<\/div>\n
<http:\/\/experiment.worldcat.org\/entity\/work\/data\/15320924#Series\/addison_wesley_signature_series<\/a>> # Addison-Wesley signature series.<\/span>\n\u00A0\u00A0\u00A0\u00A0a \nbgn:PublicationSeries<\/a> ;\u00A0\u00A0\u00A0\nschema:hasPart<\/a> <http:\/\/www.worldcat.org\/oclc\/318400817<\/a>> ; # Refactoring to patterns<\/span>\n\u00A0\u00A0\u00A0\nschema:name<\/a> \"Addison-Wesley signature series.<\/span>\" ;\u00A0\u00A0\u00A0\nschema:name<\/a> \"Addison-Wesley signature series<\/span>\" ;\u00A0\u00A0\u00A0\u00A0.\n\n\n<\/div>\n
<http:\/\/experiment.worldcat.org\/entity\/work\/data\/15320924#Topic\/ingenieria_de_programas_y_sistemas_de_programacion<\/a>> # Ingenier\u00EDa de programas y sistemas de programaci\u00F3n<\/span>\n\u00A0\u00A0\u00A0\u00A0a \nschema:Intangible<\/a> ;\u00A0\u00A0\u00A0\nschema:name<\/a> \"Ingenier\u00EDa de programas y sistemas de programaci\u00F3n<\/span>\" ;\u00A0\u00A0\u00A0\u00A0.\n\n\n<\/div>\n
<http:\/\/experiment.worldcat.org\/entity\/work\/data\/15320924#Topic\/modelos_para_software<\/a>> # Modelos para software<\/span>\n\u00A0\u00A0\u00A0\u00A0a \nschema:Intangible<\/a> ;\u00A0\u00A0\u00A0\nschema:name<\/a> \"Modelos para software<\/span>\" ;\u00A0\u00A0\u00A0\u00A0.\n\n\n<\/div>\n
<http:\/\/experiment.worldcat.org\/entity\/work\/data\/15320924#Topic\/programacion_orientada_a_objetos<\/a>> # Programaci\u00F3n orientada a objetos<\/span>\n\u00A0\u00A0\u00A0\u00A0a \nschema:Intangible<\/a> ;\u00A0\u00A0\u00A0\nschema:name<\/a> \"Programaci\u00F3n orientada a objetos<\/span>\" ;\u00A0\u00A0\u00A0\u00A0.\n\n\n<\/div>\n
<http:\/\/experiment.worldcat.org\/entity\/work\/data\/15320924#Topic\/programacion_orientada_a_objetos_computadores<\/a>> # Programaci\u00F3n orientada a objetos (Computadores)<\/span>\n\u00A0\u00A0\u00A0\u00A0a \nschema:Intangible<\/a> ;\u00A0\u00A0\u00A0\nschema:name<\/a> \"Programaci\u00F3n orientada a objetos (Computadores)<\/span>\" ;\u00A0\u00A0\u00A0\u00A0.\n\n\n<\/div>\n
<http:\/\/experiment.worldcat.org\/entity\/work\/data\/15320924#Topic\/programas_y_sistemas_de_programacion_desarrollo<\/a>> # Programas y sistemas de programaci\u00F3n--Desarrollo<\/span>\n\u00A0\u00A0\u00A0\u00A0a \nschema:Intangible<\/a> ;\u00A0\u00A0\u00A0\nschema:name<\/a> \"Programas y sistemas de programaci\u00F3n--Desarrollo<\/span>\" ;\u00A0\u00A0\u00A0\u00A0.\n\n\n<\/div>\n
<http:\/\/experiment.worldcat.org\/entity\/work\/data\/15320924#Topic\/refactorizacion_de_software<\/a>> # Refactorizaci\u00F3n de software<\/span>\n\u00A0\u00A0\u00A0\u00A0a \nschema:Intangible<\/a> ;\u00A0\u00A0\u00A0\nschema:name<\/a> \"Refactorizaci\u00F3n de software<\/span>\" ;\u00A0\u00A0\u00A0\u00A0.\n\n\n<\/div>\n
<http:\/\/experiment.worldcat.org\/entity\/work\/data\/15320924#Topic\/software_desarrollo<\/a>> # Software--Desarrollo<\/span>\n\u00A0\u00A0\u00A0\u00A0a \nschema:Intangible<\/a> ;\u00A0\u00A0\u00A0\nschema:name<\/a> \"Software--Desarrollo<\/span>\" ;\u00A0\u00A0\u00A0\u00A0.\n\n\n<\/div>\n
<http:\/\/id.loc.gov\/vocabulary\/countries\/mau<\/a>>\u00A0\u00A0\u00A0\u00A0a \nschema:Place<\/a> ;\u00A0\u00A0\u00A0\ndcterms:identifier<\/a> \"mau<\/span>\" ;\u00A0\u00A0\u00A0\u00A0.\n\n\n<\/div>\n
<http:\/\/viaf.org\/viaf\/25711546<\/a>> # Joshua Kerievsky<\/span>\n\u00A0\u00A0\u00A0\u00A0a \nschema:Person<\/a> ;\u00A0\u00A0\u00A0\nschema:familyName<\/a> \"Kerievsky<\/span>\" ;\u00A0\u00A0\u00A0\nschema:givenName<\/a> \"Joshua<\/span>\" ;\u00A0\u00A0\u00A0\nschema:name<\/a> \"Joshua Kerievsky<\/span>\" ;\u00A0\u00A0\u00A0\u00A0.\n\n\n<\/div>\n
<http:\/\/worldcat.org\/isbn\/9780321213358<\/a>>\u00A0\u00A0\u00A0\u00A0a \nschema:ProductModel<\/a> ;\u00A0\u00A0\u00A0\nschema:isbn<\/a> \"0321213351<\/span>\" ;\u00A0\u00A0\u00A0\nschema:isbn<\/a> \"9780321213358<\/span>\" ;\u00A0\u00A0\u00A0\u00A0.\n\n\n<\/div>\n
<http:\/\/www.worldcat.org\/title\/-\/oclc\/318400817<\/a>>\u00A0\u00A0\u00A0\u00A0a \ngenont:InformationResource<\/a>, genont:ContentTypeGenericResource<\/a> ;\u00A0\u00A0\u00A0\nschema:about<\/a> <http:\/\/www.worldcat.org\/oclc\/318400817<\/a>> ; # Refactoring to patterns<\/span>\n\u00A0\u00A0\u00A0\nschema:dateModified<\/a> \"2019-02-15<\/span>\" ;\u00A0\u00A0\u00A0\nvoid:inDataset<\/a> <http:\/\/purl.oclc.org\/dataset\/WorldCat<\/a>> ;\u00A0\u00A0\u00A0\u00A0.\n\n\n<\/div>\n