D Ranges
Chris
wendlec at tcd.ie
Mon Sep 16 06:05:55 PDT 2013
On Saturday, 14 September 2013 at 02:10:13 UTC, Jesse Phillips
wrote:
>
> There isn't a guide in the manner you desire.
>
> In my experience I generally don't hold any more data than the
> value returned by front (to prevent recalculation). Right now I
> don't recall what situations I've needed to store the
> intermediary data,
> but I know how you feel about having a input rang which is like
> an output range simply returning a range to provide the
> chaining ability.
>
Yes, this occurs sometimes. But I think it's due to my lack of
experience with ranges, that's why I was asking, if there was a
rough guide. I don't think I really need to store intermediate
data in my components.
I'm not sure, however, if I should slowly migrate from OOP to
structs. A of now I use them in two scenarios:
1. input / output ranges (flexible and interchangeable
"workhorses")
2. storage of user defined data types, e.g. you could have a
struct like this for an entry in a dictionary:
struct LexEntry {
string lemma = "digital";
string transcription = "Some IPA symbols";
string[] definition = ["1. bla bla", "2. bla bla"];
}
At the moment, I use a lot of singletons in my program, because a
lot of the data and data processing is handled by designated
classes that do not to be reinstantiated. They just sit there
waiting for input. In fact, without even noticing it, I designed
parts of my program in an OO fashion that, in a way, makes OOP
superfluous. So I'm beginning to wonder whether classes are
really necessary. If I need features like sublcassing, I could
just right another input range and add it to the chain. I'm still
hesitant because a. if it's not broke, don't fix it and b. there
might be some usage scenario when I'll need OO design and that I
cannot yet foresee. But I agree that OO design is hard to
unittest, it's not easy to single out a component and test it,
because it's like a neurological network.
More information about the Digitalmars-d
mailing list