<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; "><BR><DIV><DIV>Am 04.07.2005 um 07:48 schrieb Charles Parnot:</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 12px;">There is a structural failure in our implementation, the user thinks he will get a BCSequence object, when he calls a init or convenient method of BCSequence, but he gets a BCAbstractSequence. So we have to fix the inheritance model.</SPAN></FONT></DIV></BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Hi Phil,</DIV><DIV>Can you clarify this? I don't understand what you mean :-)</DIV><DIV><BR class="khtml-block-placeholder"></DIV></BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Hey Charles,</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Sure. We have to make one class out of BCSequence and BCAbstractSequence, i would suggest to name it BCSequence.</DIV><DIV>And now to the big "WHY??":</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>The problem is, that a user writes in his code:</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>BCSequence *seq = [[BCSequence alloc] initWithString:anySeqString];</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>seq will be for example of type BCSequenceRNA, but BCSequenceRNA doesn't inherit from BCSequence.</DIV><DIV>Objective-C allows our current implementation, but it is a structural failure. We need to subclass the BCSequenceNucleotide etc. from BCSequence and put the code of BCAbstractSequence in BCSequence. </DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>It's hard to explain, the easiest thing is to look at the NSValue & NSNumber implementation of GNUStep.</DIV><DIV>If you looked at the implementation and then read my message again ;-) you will hopefully understand.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>i hope that helps :-), although i'm pretty sure it is confusing</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Phil</DIV><BR></DIV></BODY></HTML>