Mother Nature likes object-oriented development! C++ programmers often can’t afford the luxury of creating a universe of objects; our platforms are intrinsically limited. However, the flyweight design pattern provides an elegant means of sharing objects, with a small price in terms of storage and retrieval. Stephen Morris describes C++ code that uses the flyweight design pattern to solve a knotty problem in networking. Also on the same web site, “Mastering the Requirements Process“.