有一个设计问题我需要你的帮助。
假设我需要设计一家服装店。在这家商店里有卖家和买家,每个人都用一个ID在商店里注册。
我们希望允许卖家以买家身份登录,反之亦然(使用他最初注册时使用的同一 ID)。
请记住,买方和卖方具有不同的数据成员,并且为了使用购买功能,我们需要的只是买方数据成员,而不是他的卖方数据成员。
乍一看,考虑到卖方与买方的数据成员不同,我决定将这两个类设置为派生自 Person 的 ShopPerson。
我决定拥有 ShopPerson 类的原因是允许买方和卖方包含通用功能的基类。(因为他们都可以买卖)
我的问题是:
“Buy”功能应该只是Buyer的成员,但是我怎么能把Seller当作Buyer呢?如果碰巧买方是卖方,那么他将没有此功能。
我上面的解决方案,使用 ShopPerson 类来拥有一个共享/公共类也不好,因为 Buy 函数使用了一些只供买方专用的数据成员,而 ShopPerson 不会熟悉它们。
我想到的唯一解决方案是放弃继承,但我不确定这是否正确。我该如何解决这个设计问题?有任何想法吗?
谢谢大家,辛迪加!