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》一書的合著者,並且她的研究成果已發表在多個同行評審的期刊和會議論文中。她的研究興趣包括計算機遊戲動態、面向對象編程語言和應用的高效內存管理,以及模式作為軟體工程教育工具。