Class Math
{
Public:
Long Add( long lOp1 , long lOp2 );
Long Subtract( long lOp1, long lOp2);
Long Multiply( long lOp1, long lOp2);
Long Divide( long lOp1, long lOp2 );
Long Factorial( short sOp );
Long Fibonacci( short sOp);
Void Draw();
Private:
//….
};
前这些接口方法是有一定分类的:前四种方法执行简单的数学运算,后面两种方法提供了两种高级运算,Draw方法提供了运算的可视化显示。但是缺点是只能把一个大的接口展示给用户。
COM提供了把一个组件的功能分割到多个接口里的能力:
Class lMath
{
Public:
Virtual Long Add( long lOp1 , long lOp2 ) = 0;
Virtual Long Subtract( long lOp1, long lOp2) = 0;
Virtual Long Multiply( long lOp1, long lOp2) = 0;
Virtual Long Divide( long lOp1, long lOp2 ) = 0;
};
Class lAdvancedMath
{
Public:
Virtual long Factorial( short sOp) = 0;
Virtual long Fibcnacci( short sOp) = 0;
};
Class lDraw
{
Public:
Virtual void Draw() = 0;
};
Class Math : public lMath, public lAdvancedMath, public lDraw
{
Public:
//….
}