Do modern programming languages, IDEs, and libraries make coding
easy? Maybe, but coding is not design. Large-scale or expensive
apps clearly require evaluation of design choices. Still, software
design directly impacts code reuse and longevity even for
small-scale apps with limited overhead. This text evaluates and
contrasts common object-oriented designs. A given problem may have
many solutions. A developer may employ different design techniques
- composition, inheritance, dependency injection, delegation, etc.
- to solve a particular problem. A skilled developer can determine
the costs and benefits of different design responses, even amid
competing concerns. A responsible developer documents design
choices as a contract with the client, delineating external and
internal responsibilities. To promote effective software design,
this book examines contractual, object-oriented designs for
immediate and sustained use as well as code reuse. The intent of
identifying design variants is to recognize and manage conflicting
goals such as short versus long-term utility, stability versus
flexibility, and storage versus computation. Many examples are
given to evaluate and contrast different solutions and to compare
C# and C++ effects. No one has a crystal ball; however, deliberate
design promotes software longevity. With the prominence of legacy
OO code, a clear understanding of different object-oriented designs
is essential. Design questions abound. Is code reuse better with
inheritance or composition? Should composition rely on complete
encapsulation? Design choices impact flexibility, efficiency,
stability, longevity, and reuse, yet compilers do not enforce
design and syntax does not necessarily illustrate design. Through
deliberate design, or redesign when refactoring, developers
construct sustainable, efficient code.
Is the information for this product incomplete, wrong or inappropriate?
Let us know about it.
Does this product have an incorrect or missing image?
Send us a new image.
Is this product missing categories?
Add more categories.
Review This Product
No reviews yet - be the first to create one!