我正在努力做出设计决定,希望你们其中一人可以帮助我。提前感谢您的时间。
我正在尝试创建一个可以使用类似产品的现有API的库。
属性:UserTypeA
操作:CreateMeeting(MeetingTypeA,UserTypeA)
属性:UserTypeB
操作:CreateMeeting(MeetingTypeB,UserTypeB)
IMyAdapter
属性:IMyUserType
方法:CreateMeeting(IMyMeeting, IMyUserType)
ProducerAdapterA: IMyAdapter
方法:CreateMeeting( xxxx, xxxx)
等
我有一个接口IMyAdapter
,它的实现为Producer(a/b)Adapter
...我的问题是每个方法的参数。
例如,ProducerA
的{{1}}方法采用的会议类型与CreateMeeting
ProducerB
方法的GenerateMeeting
不同。
我在我的Adapter相关库中创建了以下内容,以便能够为会议创建一个通用类:
MeetingType
,
IMeeting
IMeetingAdapterTypeA: IMeeting, IMeetingTypeA // IMeetingTypeA comes from producer's library
和producerB
MeetingAdapterTypeA : IMeetingAdapterTypeA
IMeetingAdapterTypeB: IMeeting, IMeetingTypeB
然而,这需要同时进行过多的强制转换操作,我的适配器的任何用户都应该知道这些强制转换。
所以我的问题是,有没有更好的方法来处理方法参数?
由于