Object-Oriented Design Choices
暫譯: 物件導向設計選擇
Dingle, Adair
- 出版商: CRC
- 出版日期: 2021-01-19
- 售價: $2,760
- 貴賓價: 9.5 折 $2,622
- 語言: 英文
- 頁數: 330
- 裝訂: Quality Paper - also called trade paper
- ISBN: 0367820188
- ISBN-13: 9780367820183
-
相關分類:
Object-oriented
-
其他版本:
Object-Oriented Design Choices
立即出貨 (庫存=1)
相關主題
商品描述
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 contrast 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, 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.
商品描述(中文翻譯)
現代的程式語言、整合開發環境(IDE)和函式庫是否使編碼變得容易?也許是,但編碼並不是設計。大型或昂貴的應用程式顯然需要評估設計選擇。然而,軟體設計直接影響代碼的重用性和持久性,即使是小型應用程式也不例外,因為它們的開銷有限。本書評估並對比常見的物件導向設計。
一個特定的問題可能有許多解決方案。開發者可以採用不同的設計技術——組合、繼承、依賴注入、委派等——來解決特定問題。一位熟練的開發者能夠在面對競爭性考量時,評估不同設計回應的成本和效益。一位負責任的開發者會將設計選擇記錄下來,作為與客戶的契約,明確界定外部和內部的責任。為了促進有效的軟體設計,本書探討了契約式的物件導向設計,以便於即時和持續使用以及代碼重用。識別設計變體的目的是為了認識和管理相互衝突的目標,例如:短期與長期效用、穩定性與靈活性、儲存與計算。書中提供了許多範例來評估和對比不同的解決方案,並比較 C# 和 C++ 的影響。沒有人能預測未來。然而,深思熟慮的設計促進了軟體的持久性。隨著遺留物件導向代碼的普遍存在,清楚理解不同的物件導向設計是至關重要的。
設計問題層出不窮。使用繼承還是組合,哪一種代碼重用更好?組合是否應依賴於完全封裝?設計選擇影響靈活性、效率、穩定性、持久性和重用性。然而,編譯器並不強制執行設計,語法也不一定能夠清楚地表達設計。透過深思熟慮的設計,或在重構時進行重新設計,開發者能夠構建可持續且高效的代碼。
作者簡介
Adair Dingle is a professor of computer science and software engineering at Seattle University, Washington, USA. She holds a B.Sc in mathematics from Duke University, Durham, North Carolina, USA; a M.Sc in computer science from Northwestern University, Evanston, Illinois, USA; and a Ph.D in computer science from the University of Texas at Dallas, USA. She is coauthor of the book, C++: Memory First, and her work has been published in numerous refereed journals and conference proceedings. Her research interests include computer game dynamics, efficient memory management for object-oriented programming languages and applications, and patterns as tools for software engineering education.
作者簡介(中文翻譯)
Adair Dingle 是美國華盛頓州西雅圖大學的計算機科學與軟體工程教授。她擁有美國北卡羅來納州杜克大學的數學學士學位、伊利諾伊州西北大學的計算機科學碩士學位,以及美國德克薩斯州達拉斯大學的計算機科學博士學位。她是書籍《C++: Memory First》的共同作者,並且她的研究成果已發表於多本經過審核的期刊和會議論文集中。她的研究興趣包括計算機遊戲動態、面向對象編程語言及應用的高效記憶體管理,以及作為軟體工程教育工具的模式。