On 27 Jan 2010 at 9:59, Jack Z wrote: > Hi Ulrich, > > Thanks for your comment. > > So by "implement polymorphism", do you mean sk->sw_write_space is > platform dependent or it does different jobs when called from > different functions in the open-iscsi code?
Hi, I mean: If you call a routine indirect through a function pointer, the reason is that you want to call different routines at runtime. Otherwise this is unnecessary and shows poor performance. So if calling different routines through a pointer, there must exist a common expectation what the code being called does (i.e. the common subset of expectations that every possible routine fulfills). [If you want to look it up somewhere else, try "dynamic binding", "polymorphism" or Bertrand Meyers "Object-Oriented software construction"] Therefore you should not ask which specific routine will be called through the pointer at some moment in time, but what the routine (whatever it is) is expected to do. (I know it's theoretical, but just introducing "hooks" (as function pointers are frequently called) can be a source of errors unless the semantics of such a hook are well defined). Now: Do you really want to know which specific routine is called, or do you want to know what the routine is supposed to do? [...] Regards, Ulrich -- You received this message because you are subscribed to the Google Groups "open-iscsi" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/open-iscsi?hl=en.
