?? page109.html
字號:
<HTML>
<HEAD>
<TITLE>Design Patterns</TITLE>
</HEAD>
<BODY bgcolor="#FFFFFF">
<img src="cover75.gif" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/icons/cover75.gif" alt="Logo" align=right>
<b>Data Structures and Algorithms
with Object-Oriented Design Patterns in C++</b><br>
<A NAME="tex2html3252" HREF="page110.html" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/html/page110.html"><IMG WIDTH=37 HEIGHT=24 ALIGN=BOTTOM ALT="next" SRC="next_motif.gif" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/icons/next_motif.gif"></A> <A NAME="tex2html3250" HREF="page107.html" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/html/page107.html"><IMG WIDTH=26 HEIGHT=24 ALIGN=BOTTOM ALT="up" SRC="up_motif.gif" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/icons/up_motif.gif"></A> <A NAME="tex2html3244" HREF="page108.html" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/html/page108.html"><IMG WIDTH=63 HEIGHT=24 ALIGN=BOTTOM ALT="previous" SRC="previous_motif.gif" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/icons/previous_motif.gif"></A> <A NAME="tex2html3254" HREF="page9.html" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/html/page9.html"><IMG WIDTH=65 HEIGHT=24 ALIGN=BOTTOM ALT="contents" SRC="contents_motif.gif" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/icons/contents_motif.gif"></A> <A NAME="tex2html3255" HREF="page620.html" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/html/page620.html"><IMG WIDTH=43 HEIGHT=24 ALIGN=BOTTOM ALT="index" SRC="index_motif.gif" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/icons/index_motif.gif"></A> <BR><HR>
<H1><A NAME="SECTION006200000000000000000">Design Patterns</A></H1>
<P>
An experienced programmer is in a sense like concert musician--she has mastered a certain <em>repertoire</em> of pieces
which she is prepared to play at any time.
For the programmer, the repertoire comprises
a set of abstract data types with which she is familiar
and which she is able to use in her programs as the need arises.
<P>
The chapters following this
present a basic repertoire of abstract data types.
In addition to defining the abstractions,
we show how to implement them in C++ and
we analyze the performance of the algorithms.
<P>
The repertoire of basic abstract data types
has been designed as a hierarchy of C++ classes.
This section presents an overview of the class hierarchy
and lays the groundwork for the following chapters.
<P>
<BR> <HR>
<UL>
<LI> <A NAME="tex2html3256" HREF="page110.html#SECTION006210000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/html/page110.html#SECTION006210000000000000000">Class Hierarchy</A>
<LI> <A NAME="tex2html3257" HREF="page111.html#SECTION006220000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/html/page111.html#SECTION006220000000000000000">Objects</A>
<LI> <A NAME="tex2html3258" HREF="page113.html#SECTION006230000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/html/page113.html#SECTION006230000000000000000">The <tt>NullObject</tt> Singleton Class</A>
<LI> <A NAME="tex2html3259" HREF="page115.html#SECTION006240000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/html/page115.html#SECTION006240000000000000000">Object Wrappers for the Built-In Types</A>
<LI> <A NAME="tex2html3260" HREF="page117.html#SECTION006250000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/html/page117.html#SECTION006250000000000000000">Containers</A>
<LI> <A NAME="tex2html3261" HREF="page118.html#SECTION006260000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/html/page118.html#SECTION006260000000000000000">Visitors</A>
<LI> <A NAME="tex2html3262" HREF="page121.html#SECTION006270000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/html/page121.html#SECTION006270000000000000000">Iterators</A>
<LI> <A NAME="tex2html3263" HREF="page122.html#SECTION006280000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/html/page122.html#SECTION006280000000000000000">The <tt>NullIterator</tt> Class</A>
<LI> <A NAME="tex2html3264" HREF="page123.html#SECTION006290000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/html/page123.html#SECTION006290000000000000000">Direct vs. Indirect Containment</A>
<LI> <A NAME="tex2html3265" HREF="page124.html#SECTION0062100000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/html/page124.html#SECTION0062100000000000000000">Ownership of Contained Objects</A>
<LI> <A NAME="tex2html3266" HREF="page125.html#SECTION0062110000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/html/page125.html#SECTION0062110000000000000000">Associations</A>
<LI> <A NAME="tex2html3267" HREF="page127.html#SECTION0062120000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/html/page127.html#SECTION0062120000000000000000">Searchable Containers</A>
</UL>
<HR><A NAME="tex2html3252" HREF="page110.html" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/html/page110.html"><IMG WIDTH=37 HEIGHT=24 ALIGN=BOTTOM ALT="next" SRC="next_motif.gif" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/icons/next_motif.gif"></A> <A NAME="tex2html3250" HREF="page107.html" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/html/page107.html"><IMG WIDTH=26 HEIGHT=24 ALIGN=BOTTOM ALT="up" SRC="up_motif.gif" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/icons/up_motif.gif"></A> <A NAME="tex2html3244" HREF="page108.html" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/html/page108.html"><IMG WIDTH=63 HEIGHT=24 ALIGN=BOTTOM ALT="previous" SRC="previous_motif.gif" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/icons/previous_motif.gif"></A> <A NAME="tex2html3254" HREF="page9.html" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/html/page9.html"><IMG WIDTH=65 HEIGHT=24 ALIGN=BOTTOM ALT="contents" SRC="contents_motif.gif" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/icons/contents_motif.gif"></A> <A NAME="tex2html3255" HREF="page620.html" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/html/page620.html"><IMG WIDTH=43 HEIGHT=24 ALIGN=BOTTOM ALT="index" SRC="index_motif.gif" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/icons/index_motif.gif"></A> <P><ADDRESS>
<img src="bruno.gif" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/icons/bruno.gif" alt="Bruno" align=right>
<a href="javascript:if(confirm('http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/copyright.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/copyright.html'" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/copyright.html">Copyright © 1997</a> by <a href="javascript:if(confirm('http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/signature.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/signature.html'" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus4/signature.html">Bruno R. Preiss, P.Eng.</a> All rights reserved.
</ADDRESS>
</BODY>
</HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -