Talk details

In schedule:
Blue Stage
May 18, 16:00 - 16:45 CET
Patterns of Object Instantiation
virtual talk
Topics:
Software Delivery Craft Matters
object oriented programming
oop
agile
instantiation
design patterns
emergent design
software quality
Level: Intermediate+

One crucial difference between writing object-oriented software and writing procedural software is the notion of object construction. Objects must be instantiated before they can be used. This is more than a technical detail; it is at the very core of OO's usefulness.

A key distinction—and therefore opportunity—of object-oriented programming over procedural programming is that objects have two phases in their lifecycle: creation and use. We can build more modular and extensible software by separating these two phases so that certain kinds of tasks are done when an object is created, and other tasks are done later during usage.

This session will explore how you can leverage object instantiation to build more decoupled, extensible, and maintainable systems. We’ll cover several common antipatterns in instantiation along with replacement patterns that drop the cost of ownership for software built in object-oriented languages such as Java, C Sharp, C++, etc.

 

Benefits:

·      Leverage object instantiation to write more decoupled and testable code

·      Learn how to use the object-oriented model to build maintainable software

·      Recognize instantiation anti-patterns that make code harder to extend

·      Apply instantiation patterns that improve testability and extensibility

·      Know when to use factories and how to construct them efficiently

·      Encapsulate construction to improve an object’s testability and extensibility

Speaker
Craft 2023 - David Bernstein
virtual speaker
David Bernstein
Principal Technical Consultant at To Be Agile

David Scott Bernstein is the author of Beyond Legacy Code: Nine Practices to Extend the Life (and Value) of Your Software. It’s an insider’s view of the software industry drawn from his decades of hands-on experience as a software developer, trainer, and consultant to some of the biggest players in the business. David’s continuing passion for software design and construction has led him to train m...