Practical Object-Oriented Design: An Agile Primer Using Ruby, 2nd edition
BRAND: PEARSON
Publisher: | Addison-Wesley Professional |
Author: | Sandi Metz |
Edition: | (July 10, 2018) © 2019 |
eBook ISBN: | 9780134445571 |
Print ISBN: | 9780134456478 |
Type: | 1 Year Subscription. Dành cho Cá nhân |
eBook edition. 1 year Subscription. Dành cho Cá nhân | Trường ĐH, Nhóm, Thư Viện: Gọi 0915920514 để báo giá Pearson, Vital Source eBook hoặc mua Sách In
See what in the box
Mô tả sản phẩm
Hướng dẫn đầy đủ để viết các ứng dụng hướng đối tượng mạnh mẽ, dễ bảo trì, dễ quản lý và dễ bảo trì
Các ngôn ngữ lập trình hướng đối tượng tồn tại để giúp các lập trình viên tạo ra các ứng dụng đẹp, đơn giản, dễ thay đổi và mở rộng đơn giản. Thật không may, thế giới tràn ngập các ứng dụng hướng đối tượng (OO) khó hiểu và tốn kém để thay đổi. Thiết kế hướng đối tượng thực tế, Phiên bản thứ hai, đưa sinh viên vào tư duy OO và dạy họ các kỹ thuật thiết kế hướng đối tượng, thực tế, mạnh mẽ với các ví dụ đơn giản và thực tế.
Sandi Metz trình bày cách xây dựng các ứng dụng mới có thể “tồn tại thành công” và sửa chữa các ứng dụng hiện có không thể thay đổi. Mỗi kỹ thuật được minh họa bằng các ví dụ mở rộng bằng ngôn ngữ lập trình Ruby dễ hiểu, tất cả đều có thể tải xuống từ trang web đồng hành, poodr.com
Introduction xv
Acknowledgments xix
About the Author xxi
Chapter 1: Object-Oriented Design 1
1.1 In Praise of Design 2
1.2 The Tools of Design 4
1.3 The Act of Design 6
1.4 A Brief Introduction to Object-Oriented Programming 10
1.5 Summary 13
Chapter 2: Designing Classes with a Single Responsibility 15
2.1 Deciding What Belongs in a Class 16
2.2 Creating Classes That Have a Single Responsibility 17
2.3 Writing Code That Embraces Change 24
2.4 Finally, the Real Wheel 33
2.5 Summary 35
Chapter 3: Managing Dependencies 37
3.1 Understanding Dependencies 38
3.2 Writing Loosely Coupled Code 41
3.3 Managing Dependency Direction 53
3.4 Summary 59
Chapter 4: Creating Flexible Interfaces 61
4.1 Understanding Interfaces 61
4.2 Defining Interfaces 63
4.3 Finding the Public Interface 65
4.4 Writing Code That Puts Its Best (Inter)Face Forward 77
4.5 The Law of Demeter 80
4.6 Summary 84
Chapter 5: Reducing Costs with Duck Typing 85
5.1 Understanding Duck Typing 85
5.2 Writing Code That Relies on Ducks 95
5.3 Conquering a Fear of Duck Typing 100
5.4 Summary 103
Chapter 6: Acquiring Behavior through Inheritance 105
6.1 Understanding Classical Inheritance 105
6.2 Recognizing Where to Use Inheritance 106
6.3 Misapplying Inheritance 114
6.4 Finding the Abstraction 116
6.5 Managing Coupling between Superclasses and Subclasses 129
6.6 Summary 139
Chapter 7: Sharing Role Behavior with Modules 141
7.1 Understanding Roles 142
7.2 Writing Inheritable Code 158
7.3 Summary 161
Chapter 8: Combining Objects with Composition 163
8.1 Composing a Bicycle of Parts 163
8.2 Composing the Parts Object 168
8.3 Manufacturing Parts 176
8.4 The Composed Bicycle 181
8.5 Deciding between Inheritance and Composition 185
8.6 Summary 191
Chapter 9: Designing Cost-Effective Tests 193
9.1 Intentional Testing 194
9.2 Testing Incoming Messages 202
9.3 Testing Private Methods 215
9.4 Testing Outgoing Messages 217
9.5 Testing Duck Types 221
9.6 Testing Inherited Code 233
9.7 Summary 244
Afterword 245
Index 247
Hướng dẫn đầy đủ để viết các ứng dụng hướng đối tượng mạnh mẽ, dễ bảo trì, dễ quản lý và dễ bảo trì
Các ngôn ngữ lập trình hướng đối tượng tồn tại để giúp các lập trình viên tạo ra các ứng dụng đẹp, đơn giản, dễ thay đổi và mở rộng đơn giản. Thật không may, thế giới tràn ngập các ứng dụng hướng đối tượng (OO) khó hiểu và tốn kém để thay đổi. Thiết kế hướng đối tượng thực tế, Phiên bản thứ hai, đưa sinh viên vào tư duy OO và dạy họ các kỹ thuật thiết kế hướng đối tượng, thực tế, mạnh mẽ với các ví dụ đơn giản và thực tế.
Sandi Metz trình bày cách xây dựng các ứng dụng mới có thể “tồn tại thành công” và sửa chữa các ứng dụng hiện có không thể thay đổi. Mỗi kỹ thuật được minh họa bằng các ví dụ mở rộng bằng ngôn ngữ lập trình Ruby dễ hiểu, tất cả đều có thể tải xuống từ trang web đồng hành, poodr.com
Introduction xv
Acknowledgments xix
About the Author xxi
Chapter 1: Object-Oriented Design 1
1.1 In Praise of Design 2
1.2 The Tools of Design 4
1.3 The Act of Design 6
1.4 A Brief Introduction to Object-Oriented Programming 10
1.5 Summary 13
Chapter 2: Designing Classes with a Single Responsibility 15
2.1 Deciding What Belongs in a Class 16
2.2 Creating Classes That Have a Single Responsibility 17
2.3 Writing Code That Embraces Change 24
2.4 Finally, the Real Wheel 33
2.5 Summary 35
Chapter 3: Managing Dependencies 37
3.1 Understanding Dependencies 38
3.2 Writing Loosely Coupled Code 41
3.3 Managing Dependency Direction 53
3.4 Summary 59
Chapter 4: Creating Flexible Interfaces 61
4.1 Understanding Interfaces 61
4.2 Defining Interfaces 63
4.3 Finding the Public Interface 65
4.4 Writing Code That Puts Its Best (Inter)Face Forward 77
4.5 The Law of Demeter 80
4.6 Summary 84
Chapter 5: Reducing Costs with Duck Typing 85
5.1 Understanding Duck Typing 85
5.2 Writing Code That Relies on Ducks 95
5.3 Conquering a Fear of Duck Typing 100
5.4 Summary 103
Chapter 6: Acquiring Behavior through Inheritance 105
6.1 Understanding Classical Inheritance 105
6.2 Recognizing Where to Use Inheritance 106
6.3 Misapplying Inheritance 114
6.4 Finding the Abstraction 116
6.5 Managing Coupling between Superclasses and Subclasses 129
6.6 Summary 139
Chapter 7: Sharing Role Behavior with Modules 141
7.1 Understanding Roles 142
7.2 Writing Inheritable Code 158
7.3 Summary 161
Chapter 8: Combining Objects with Composition 163
8.1 Composing a Bicycle of Parts 163
8.2 Composing the Parts Object 168
8.3 Manufacturing Parts 176
8.4 The Composed Bicycle 181
8.5 Deciding between Inheritance and Composition 185
8.6 Summary 191
Chapter 9: Designing Cost-Effective Tests 193
9.1 Intentional Testing 194
9.2 Testing Incoming Messages 202
9.3 Testing Private Methods 215
9.4 Testing Outgoing Messages 217
9.5 Testing Duck Types 221
9.6 Testing Inherited Code 233
9.7 Summary 244
Afterword 245
Index 247