- Page 1 and 2: Smalltalk Best Practice PatternsVol
- Page 3 and 4: STATE..............................
- Page 5 and 6: PrefaceThis preface will explain wh
- Page 7: AcknowledgmentsI would like to than
- Page 10 and 11: Many of the patterns tell you what
- Page 12 and 13: day to day in development and docum
- Page 14 and 15: What’s Missing?There are a few co
- Page 16 and 17: AdoptionHow can you learn and use t
- Page 18 and 19: Why Patterns WorkHere is the Big As
- Page 20 and 21: Role of PatternsReadingThese patter
- Page 22 and 23: BehaviorObjects model the world thr
- Page 24 and 25: Composed MethodYou are implementing
- Page 26 and 27: Complete Creation MethodA Composed
- Page 28 and 29: ConversionHow do you convert inform
- Page 30 and 31: Converter Creation MethodYou need t
- Page 32 and 33: Query MethodA Composed Method has h
- Page 34 and 35: Execute Around MethodHow do you rep
- Page 38 and 39: Choosing MessageYou are using a Mes
- Page 40 and 41: Decomposing MessageYou are using a
- Page 42 and 43: Intention Revealing SelectorYou may
- Page 44 and 45: Integer>>addFloat: aFloat^self asFl
- Page 46 and 47: Class: SuperFindingClientsuperclass
- Page 48 and 49: Extending SuperYou are using Super.
- Page 50 and 51: DelegationA Composed Method needs w
- Page 52 and 53: Self DelegationYou are using Delega
- Page 54 and 55: Pluggable BehaviorHow can you param
- Page 56 and 57: Pluggable BlockYou need complex Plu
- Page 58 and 59: marriedMenAndUnmarriedWomen^self ma
- Page 60 and 61: Instance VariablesI wrote the secti
- Page 62 and 63: Variable StateHow do you represent
- Page 64 and 65: Timer>>defaultMillisecondPeriod^100
- Page 66 and 67: Default Value MethodYou have a comp
- Page 68 and 69: Direct Variable AccessYou need to a
- Page 70 and 71: Getting MethodYou are using Lazy In
- Page 72 and 73: Collection Accessor MethodYou are u
- Page 74 and 75: Enumeration MethodYou are using Ind
- Page 76 and 77: Role Suggesting Instance Variable N
- Page 78 and 79: Temporary VariableA Composed Method
- Page 80 and 81: Caching Temporary VariableA Perform
- Page 82 and 83: Reusing Temporary VariableTemporary
- Page 84 and 85: CollectionsThe collection hierarchy
- Page 86 and 87:
CollectionHow do you represent a on
- Page 88 and 89:
RunArrayYou are using an OrderedCol
- Page 90 and 91:
| s |s := Set new.Like an OrderedCo
- Page 92 and 93:
You may need Double Dispatch for co
- Page 94 and 95:
DictionaryYou need a Collection tha
- Page 96 and 97:
SortedCollectionYou have a Collecti
- Page 98 and 99:
ByteArrayYou need to represent an A
- Page 100 and 101:
(1 to: anArray size) collect:[:each
- Page 102 and 103:
IsEmptyHow do you test if a collect
- Page 104 and 105:
ConcatentationHow do you put two co
- Page 106 and 107:
DoHow do you execute code for each
- Page 108 and 109:
Select/RejectHow do you execute cod
- Page 110 and 111:
Inject:into:You need an Enumeration
- Page 112 and 113:
Duplicate Removing SetYou have a Co
- Page 114 and 115:
StackHow do you implement a stack?O
- Page 116 and 117:
implementation of queues in Pascal
- Page 118 and 119:
Lookup CacheHow do you optimize com
- Page 120 and 121:
Parsing StreamHow do you write a si
- Page 122 and 123:
ClassesThere is probably no coding
- Page 124 and 125:
Qualified Subclass NameYou have cre
- Page 126 and 127:
FormattingNo other topic generates
- Page 128 and 129:
Type Suggesting Parameter NameYou a
- Page 130 and 131:
Rectangular BlockYou are writing an
- Page 132 and 133:
Conditional ExpressionHow do you fo
- Page 134 and 135:
Simple Enumeration ParameterWhat sh
- Page 136 and 137:
self listPane parentcolor: Color bl
- Page 138 and 139:
Point>>printOn: aStreamaStreamprint
- Page 140 and 141:
Development ExampleIn this chapter,
- Page 142 and 143:
Money>>setAmount: aNumber currency:
- Page 144 and 145:
MoneySum>>printOn: aStreammonies do
- Page 146:
| m1 m2 |m1 := Moneyamount: 5curren