Hey Steve its getting more complex i think now...
While I totally agree with Ajith and Jayadev in generics of this matter, i must say that taking this particular example of text editor...one may have many solutions and resons to claim. My design would be ---
Start with a strategy pattern... which will check if the incoming format is registered with my system then the object will be of type Strgy_Known class (say for example) else Strgy_Unknown class, both implementing a common interface. Now how to create that object. For known formats, if it is a simple call then "Strgy_Known"'s own function will handle , and for all unknown formats another different strategy pattern.
Advt of second line strategy pattern is, with course of time when formats become acceptable u can easily move them to front line strategy handling.
Also u can a common algo to reject the input when its junk for u. Plus if u go for builder as second line, u really dont know if u have the same process for creation for unkown objects..
Disadvt is its complexity. But its interesting to have such nested strategy patterns..
as long as u have provided cleaner logic for handling unforseen situations.
thnx n rgds