This document discusses the design of a document editor called Lexi. It addresses several design problems including document structure, formatting, user interface embellishment, supporting multiple look-and-feel standards and window systems, and user operations like undo/redo. It proposes solutions to these problems using several design patterns like composite, decorator, factory, bridge, command, and iterator patterns to achieve flexibility, extensibility and independence of algorithms and structures. The goal is to create a reusable and extensible design that can be understood and communicated effectively between team members.
Related topics: