我正在研究编写自己的例子的模式。但有时候我被卡住了......
我有四家商店:
Store1:肉类,冰淇淋和卫生纸。
Store2:冰淇淋。
Store3:肉。
Store4:冰淇淋,意大利面,蔬菜。
有时我想要所有商店的肉。
有时只有来自所有商店的冰淇淋。
有时只有一家商店的冰淇淋。
我应该如何为每个类设计接口,而不是每个类都会实现每个方法?我的意思是, Store2 没有get_ice_cream,因为 Store2中没有肉。
界面隔离可能导致“界面爆炸”。
另一方面......人们说在多数情况下多重继承是一个糟糕的决定。
我一直试图解决这个问题。
有一种方法可以添加新商店并使我的 IceCream 具体类能够从商店对象列表中获取所有冰淇淋,这将是非常好的只需执行相同的 get_ice_cream 方法。
感谢您的帮助?
答案 0 :(得分:0)
创建一个商店工厂,为您提供各种类型的商店 这些商店应该从generalStore抽象类继承,该类定义所有这些方法并返回 productNotFoundException 或其他:)
在每个商店中覆盖实际存在的内容,在询问产品时,请使用try / catch。
您还可以让所有产品继承自一般产品,该产品在覆盖之前返回所有getter返回null的产品。