Re: Really "BIG" class name wanted
On 29.07.2011 14:28, Ross wrote:
I'm really confident that what I am doing is a really good idea. A lot
of things that were tricky and/or non-intuitive or complicated have
suddenly simplified right down, and it's a much, much, better
structure program now than before I had this class. A fair number of
classes which before had long and complex argument lists in their
constructors now take one argument. And I find that when I find that I
DO need access to the properties from one particular class, I just get
them from this "central" object, and don't have to go around changing
constructor calls elsewhere.
Downside is that now you have a dependency from all these classes to the
single class which might seriously prevent reuse. Also, it is far less
obvious what kind of information particular classes really need because
you just hand in the single large object. And this /can/ make
understanding the code harder.
Another typical example where things get so much easier is copy and
paste: you do it modify the copy in one location and be done. Headaches
come later, especially if you fix a bug in one of the two copies but
forget to do it in the other one as well. Plus, people might start
wondering why the same code occurs in several places which also makes
navigating the code harder: you won't find all the callers which use
that specific piece of code since you alway only see callers of one copy.
What I am trying to say: "things are easier" is probably not a reliable
metric. Take this with a grain of salt because I don't know your
application etc. but I would reconsider this.
Calling it an "ApplicationContext" would work. As would calling it
"ApplicationComponents", or "CommonComponents".
I just wanted a name more exciting than that. At present it's called
"CentralScrutinizer" which is not the best, and hence it's ripe for
some sed-driven renaming. But I like the idea of this class having a
distinctive name. Particularly since should anyone end up writing any
plugins for my application, they'll have to make use of it.
> PS: To address Patricia's concerns (which I can understand), then the
> class name "ToolsAndComponents" is bang on for what it is. Just not
> impressive enough. "CircusRingmeister" might be an alternative, but
> not on topic enough.
The name "ToolsAndComponents" sets off an alarm - that's just too much
and too unspecific.
Kind regards
robert
--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/