为异构源创建接口

时间:2017-07-26 13:06:29

标签: python design-patterns architecture software-design

我正在研究编写自己的例子的模式。但有时候我被卡住了......

我有四家商店:

Store1:肉类,冰淇淋和卫生纸。

Store2:冰淇淋。

Store3:肉。

Store4:冰淇淋,意大利面,蔬菜。

有时我想要所有商店的肉。

有时只有来自所有商店的冰淇淋。

有时只有一家商店的冰淇淋。

我应该如何为每个类设计接口,而不是每个类都会实现每个方法?我的意思是, Store2 没有get_ice_cream,因为 Store2中没有肉

界面隔离可能导致“界面爆炸”。

另一方面......人们说在多数情况下多重继承是一个糟糕的决定。

我一直试图解决这个问题。

有一种方法可以添加新商店并使我的 IceCream 具体类能够从商店对象列表中获取所有冰淇淋,这将是非常好的只需执行相同的 get_ice_cream 方法。

感谢您的帮助?

1 个答案:

答案 0 :(得分:0)

创建一个商店工厂,为您提供各种类型的商店 这些商店应该从generalStore抽象类继承,该类定义所有这些方法并返回 productNotFoundException 或其他:)

在每个商店中覆盖实际存在的内容,在询问产品时,请使用try / catch。

您还可以让所有产品继承自一般产品,该产品在覆盖之前返回所有getter返回null的产品。