Hi!
Related with the issue http://code.google.com/p/pharo/issues/detail?id=2757 (Issue 2757:
Refactor StringHolder) I was looking at the StringHolder hierarchy, and well, it's not very nice.� Playing to see how difficult should it be to refactor the hierarchy and decouple a bit those things, I took Workspace off from there, and writing 2 methods it happened to work well (at least with what I tested, hehe).
Sooo, I wondered why a StringHolder, what responsibilities it has, and what ones should it have...� I found that most of the messages a StringHolder understands are for browsing things and inspect things, such as the Paragraph editor does :).� And that's why Workspace could do all his stuff when I made him inherit from Object...
StringHolder class comment says: "I am a kind of Model that includes a piece of text.� In some cases, the text can be edited, and in some the text is a method."
And I smell that its main responsibility is to hold a Text or a String in its contents variable, and all its subclasses are there because of that...� And if so, I don't like that inheritance approach :).
I want to destroy (literally) that hierarchy :).� And maybe it helps us in coming refactors and cleanings, so we can do them with less fear :P.
Well, this mail is just for ask for advice and argue about the correctness of this change (or not).
Thanks for reading up to here!
Guille