000 03783cam a2200541Mi 4500
001 9781003013488
003 FlBoTFG
005 20220724194202.0
006 m o d
007 cr |||||||||||
008 201104s2021 flua fo 000 0 eng d
040 _aOCoLC-P
_beng
_erda
_cOCoLC-P
020 _a9781000338089
_q(e-book)
020 _a1000338088
020 _a9781003013488
_q(electronic bk.)
020 _a1003013481
_q(electronic bk.)
020 _a9781000338102
_q(electronic bk. : Mobipocket)
020 _a100033810X
_q(electronic bk. : Mobipocket)
020 _a9781000338126
_q(electronic bk. : EPUB)
020 _a1000338126
_q(electronic bk. : EPUB)
020 _z9780367820817 (hbk.)
020 _z9780367820183 (pbk.)
035 _a(OCoLC)1235966968
035 _a(OCoLC-P)1235966968
050 4 _aQA76.64
072 7 _aCOM
_x000000
_2bisacsh
072 7 _aCOM
_x012040
_2bisacsh
072 7 _aCOM
_x014000
_2bisacsh
072 7 _aUB
_2bicssc
082 0 4 _a005.117
_223
100 1 _aDingle, Adair,
_eauthor.
245 1 0 _aObject-oriented design choices
_cAdair Dingle.
264 1 _aBoca Raton :
_bChapman & Hall/CRC,
_c2021.
300 _a1 online resource
_billustrations (black and white)
336 _atext
_btxt
_2rdacontent
337 _acomputer
_bc
_2rdamedia
338 _aonline resource
_bcr
_2rdacarrier
520 _aDo 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.
588 _aOCLC-licensed vendor bibliographic record.
650 0 _aObject-oriented programming (Computer science)
650 0 _aComputer software
_xDevelopment.
650 7 _aCOMPUTERS / General
_2bisacsh
650 7 _aCOMPUTERS / Computer Graphics / Game Programming & Design
_2bisacsh
650 7 _aCOMPUTERS / Computer Science
_2bisacsh
856 4 0 _3Read Online
_uhttps://www.taylorfrancis.com/books/9781003013488
856 4 2 _3OCLC metadata license agreement
_uhttp://www.oclc.org/content/dam/oclc/forms/terms/vbrl-201703.pdf
942 _2lcc
_cEBK
999 _c14685
_d14685