Large-scale C++ Software DesignAddison-Wesley, 1996 - Всего страниц: 846 This is the definitive book for all C++ software professionals involved in large development efforts such as databases, operating systems, compilers, and frameworks. It is the first C++ book that actually demonstrates how to design large systems, and one of the few books on object-oriented design specifically geared to practical aspects of the C++ programming language. In this book, Lakos explains the process of decomposing large systems into physical (not inheritance) hierarchies of smaller, more manageable components. Such systems with their acyclic physical dependencies are fundamentally easier and more economical to maintain, test, and reuse than tightly interdependent systems. In addition to explaining the motivation for following good physical as well as logical design practices, Lakos provides you with a catalog of specific techniques designed to eliminate cyclic, compile-time, and link-time (physical) dependencies. He then extends these concepts from large to very large systems. The book concludes with a comprehensive top-down approach to the logical design of individual components. Appendices include a valuable design pattern Protocol Hierarchy designed to avoid fat inte |
Содержание
BASICS | 19 |
Ground Rules 63 1 | 63 |
PHYSICAL DESIGN CONCEPTS | 97 |
Авторские права | |
Не показаны другие разделы: 18
Часто встречающиеся слова и выражения
a.out abstraction ACCESSORS argument array avoid base class behavior clients compile compile-time compile-time coupling const char const-correct constructor cost cyclic dependencies d_size data members declared default arguments defined definition delete derived class Design Rule destructor double double& Elem encapsulation endif Figure example file scope fully insulating function call geom_Point global Gnode graph header file hierarchy ifndef implementation details initialization inline functions integer iterator levelizable link-time low-level member function memory memory leaks modify my_Link Node NodeId non-const non-inline object opaque pointer operator operator overloading operator=(const package prefix physical dependencies physical design Point pointer procedural interface protocol protocol hierarchy pub_String recompile reference regression tests reusable reuse runtime Section Shape shown in Figure Stack static member String struct subsystem techniques test driver tion translation unit type safety typedef unsigned user-defined type virtual function wrapper component