3. 3Ch動董ng 8: Ti畉n t畛i t動 duy h動畛ng 畛i t動畛ng
8.1 畉t v畉n 畛
Designing object-oriented software is hard, and designing reusable
object-oriented software is even harder...It takes a long time for
novices to learn what object-oriented design is all about. Exprienced
designers evidently know something inexperienced ones don't...
One thing expert designers know not to do is solve every problem from
first principles. Rather, they reuse solutions that have worked for
them in the past. When they find a good solution, they use it again
and again. Such experience is part of what makes them experts.
Consequently, you'll find recurring patterns of classes and
communicating objects in many object-oriented systems. These
patterns solve specific design problems and make object-oriented
design more flexible, elegant, and ultimately reusable...
Erich Gamma et. al.: Design Patterns: Elements of Reusable Object-
Oriented Software, Addison-Wesley, 1995.