[Biococoa-dev] Factories
Koen van der Drift
kvddrift at earthlink.net
Sun Aug 29 19:01:38 EDT 2004
On Aug 29, 2004, at 5:17 PM, Alexander Griekspoor wrote:
> John implemented 17 nucleotides in the BCSequenceDNA class, why
> doesn't the same approach work for aminoacids? All the class methods
> like + (BCAminoAcid *) alanine are in place isn't it? Why doesn't that
> work?
I'm sure it does work, actually it's already implemented in BCAminoAcid
in CVS. I was just confused by all the different methods for each
base/amino acid. For instance this code:
+ (BCAminoAcid *) alanine {
if ( alanineRepresentation == nil )
[BCAminoAcid initAminoAcids];
return alanineRepresentation;
}
Every time an amino acid representation is not present, initAminoAcids
gets called and makes a representation for each amino acid. This just
appeared redundant to me. So I started to read some more, and found
that the combination of Singleton/Flyweight/Factory patterns is a
widely used approach in OOP, especially when you deal with a large
amount of similar objects.
So based on some sample code I read, I implemented smething similar in
BCAminoAcid, and BCSequenceProtein. But I will also leave in the method
that John uses for nucleotides.
- Koen.
More information about the Biococoa-dev
mailing list