Essential COM

, 1998 , Microsoft Systems Journal. , .

- 1980- . 1980- , . . , . C++ Smalltalk . , , , , . - , . , , Apple Object Pascal, SmallTalk ParePlace Digitalk, Turbo C++ Borland.

, , . , (collections) . C++:

class Dog { public: virtual void Bark(void); }; class Pug : public Dog { public: virtual void Bark(void); }; class Collie : public Dog { public: virtual void Bark(void); };

Collie Pug Dog, (generic) :

void BarkLikeADog(Dog& rdog) { rdog.Bark(); }

Bark , C++ . , BarkLikeADog , ; , , Dog. , - .

, . . , . . , , . Bark Pug:

void Pug::Bark(void) { this->BreathIn(); this->ConstrictVocalChords(); this->BreathOut(); }

, Bark Dog , ? , , (barks) (dog)? , Pug Dog. . , , . .

, , , , , . , . , , , . - . . , . , . - . , . , - , (Component Object Model - ) Microsoft, Orbix Object Request Broker Iona Digitalk, - Java1.

, - , , " " " " , . Java:

interface IDog { public void Bark(); }; class Pug implements IDog { public void Bark( ){...} }; class Collie Implements IDog { public void Bark( ){...} };

Collie Pug IDog, :

void BarkLikeADog(IDog dog) { dog.Bark(); }

, C++. , Bark IDog , IDog Pug Collie . , Pug, Collie , " " (bark), Pug Collie , IDog.

, ( , ). . .

, . , (opaque) . , , , , , , , . Excel, , . Excel 25 , (Linking, Embedding, Inplace Activation, Automation, Active Document Objects, Hyperlinking . .). (vptr) , 100 , , . , 100 , .

Excel , . QueryInterface. ( , IOleItemContainer), . , , , Excel , . , 1000 . , 16 Excel. , 1000 16 000 , . 100 , , . , 32 , . , , 1000- 32 100 , , Excel. , .

, Excel vptr, , . . A.1 . , , , vptr . , , , . . . vptr, . , vptr , . .2. , , , , .

, vptr, Excel . . 16 , 32 , vptr , . , - , 32 vptr . , Excel vptr, " " (cell-by-cell). , , vptr. " " (flyweight objects), , " " (tearoff) , " " (Crispin Goswell. Programmer's Cookbook) ( http://www.microsoft.com/oledev). (lazy evaluation) vptr.

, . . , , , , . , , , . , . Microsoft Transaction Server ( Microsoft MTS).

- , . MTS , . MTS , , . MTS , , , , (fine-grain). , vptr ( ). MTS , . MTS , , . , , , MTS . , MTS, MTS , .

, MTS, , . , , MTS, , . , , MTS . MTS , .

MTS Microsoft , MTS . - .


1 Java , , CORBA ( , Orbix Iona, DSOM IBM, Object Broker BEA).

Категории