[Biococoa-dev] BCPairwiseAlignment

Alexander Griekspoor a.griekspoor at nki.nl
Sun Mar 13 08:41:49 EST 2005


> On Mar 12, 2005, at 3:17 PM, Charles PARNOT wrote:
>
>> Categories are not 'evil'. They are often warned against, but this is 
>> mostly when using categories on Apple's classes, because you don't 
>> know in which order they are loaded, and you don't know if your 
>> category might interfere with someone else's category, and which one 
>> will override which in case two methods have the same name.
>>
>> However, categories used inside your own code can be a nice way to 
>> cut your class in smaller chunks, both physically (different files), 
>> and logically (I believe the compiler will only recompile the 
>> category if only the catgory is modified, which makes for faster 
>> builds). For the user of our framework, it is completely transparent, 
>> as long as you put all the interfaces in the same header file, so 
>> that all the headers can be #import-ed at once.
>>
>
> Thanks - I was under the impression that categories were intended to 
> be used to extend private frameworks, such as Foundation.
They are also. But they're used to separate code within the same .h/.m 
file as well.
Phil, the problem Koen and I have as far as I can speak for the two of 
us, is that we don't really see the structure you have in mind with the 
categories.
Charles is right, the class-subclass layering only has use if there's 
code that can be grouped together between in this case different 
algorithms. So, if there is lots of code to share between let's say a 
smith-waterman and needleman-wunsch alignment then it makes sense to 
create a superclass for all algorithms. If there's hardly any, than 
there's not much use.
So to clear things up from my side:
BCAlignment becomes BCSequenceAlignment, this is the net result of an 
alignment, some way to store them in the end
Then the question is what do we call for instance a Smith-Waterman 
local alignment and does it make sense to let them derive from a 
BCAlignmentAlgorithm (I believe Koen had a better name) superclass.
Finally, the categories. I'm not sure where this would fit in, but the 
reason I said to just incorporate the convenience method in the class 
was based on the idea that given a class named BCSmithWatermanAlgorithm 
(to mention a horrible name), it would just have a class method:
+ (BCSequenceAlignment *)alignmentOfSequences: (NSArray *)sequences 
criteria: (NSDictionary *) dict; (to mention another horrible method 
name).
I don't really see where the categories come in and what structure Phil 
had in mind.. Does this make my remarks more clear?
Alex

*********************************************************
                     ** Alexander Griekspoor **
*********************************************************
               The Netherlands Cancer Institute
               Department of Tumorbiology (H4)
          Plesmanlaan 121, 1066 CX, Amsterdam
                   Tel:  + 31 20 - 512 2023
                   Fax:  + 31 20 - 512 2029
                   E-mail: a.griekspoor at nki.nl
	        AIM: mekentosj at mac.com
               Web: http://www.mekentosj.com

                  EnzymeX - To cut or not to cut
              http://www.mekentosj.com/enzymex

*********************************************************




More information about the Biococoa-dev mailing list