其实没有必要这么复杂,举个例子{统一的接口,当然也可以使用抽象类来作为接口}IConnection = interface procedure Write
procedure Read;end;{这是你的B,C,D……}TCOMConnection = class(TInterfacedObject, IConnection)public procedure Write
procedure Read;end;{这也是你的B,C,D……之一}TTcpipConnection = class(TInterfacedObject, IConnection)public procedure Write
procedure Read;end;具体的使用var TmpConnection: IConnection
{这是你的A}begin TmpConnection := TCOMConnection.Create()
{这里根据你的具体情况来创建合适的接口} 实际上这都谈不上设计模式,只是多态的运用。另外如果要对对象的创建做一个控制,可以使用工厂模式,比如TConnectFactory = class class function CreateInstance(const AConnectParam: string): IConnection;……这样你就可以这么使用比如 TConnectFactory.CreateInstance('Tcpip').write……