战略模式的UML类图

时间:2013-04-25 10:26:58

标签: uml class-diagram strategy-pattern

我在几个小时内参加了考试,我正在尝试为它解决样本问题。我无法找到以下问题的解决方案。

  
    

绘制对应于以下情况的类图:

         

杂货店(例如超市)销售商品。有两种类型的食物:食用     (即任何可用作食物的物品)和不可食用的物品。有些商品按重量出售,     有些是按单位出售的。有些项目是应纳税的,而其他项目则不是。一些项目     以团体形式出售时有特价(例如2美元,3美元)。购买可能包含许多     项目

         

在类图中,只显示类/抽象类/接口,关联,     和协会的多重性。不包括任何操作!清楚地表明     设计中的接口和抽象类(如果有的话)。

         

此外,您的设计应该是     尽可能灵活。特别是,你需要     注意以下几点:

         

1)一个项目可以食用或不食用,这个事实在一生中不会改变     该项目,而定价策略可能会在项目的生命周期内发生变化。

         

2)每种定价策略都与某组操作相关联。例如,     对于征税策略,无论项目是否应纳税,我们都可以进行操作     计算税收(此功能可以为非应税项目返回0)

         

3)尽管定价策略的操作集保持不变,但这些方式仍然存在     处理的操作可能会随时间而变化。例如,我们计算的方式     食用和非食用物品的税收可能会随着时间的推移而不同。

         

4)虽然定价策略的一组操作在不同的方面保持不变     项目,我们可能希望以不同的方式为不同的方式实施这些操作     项目。例如,我们可能希望以不同的方式计算橙子和税收     苹果。

  

我尝试过这样的事情,认为它适合策略设计模式,但我完全不确定。

enter image description here

1 个答案:

答案 0 :(得分:2)

首先是有一家商店,可以是杂货店。任何商店都有两种类型的对象:商品和购买。如果没有商品和/或购买,商店将停止存在。物品将在没有商店的情况下存在(例如,它们必须被送到商店),但购买物品属于商店本身。这就是为什么商店和商品之间存在聚合关系,而商店和购买之间存在组合关系的原因。

项目具有一些功能,如名称,食用,应税,重量和单位。我没有实现项目的所有特征,但这个想法就在那里。有很多方法可以出售这些物品。可能会同时使用更多策略。对于那种情况是设计的装饰图案。它可以在运行时动态添加几个策略。 它正在装饰物品 - 界面,因为它与物品相关联,因为销售方式的变化在物品中找到了原因。它与集体购买有关,但它不是购买的一部分。将要出售的每件商品都属于特定购买。它还可以使该州尚未出售。这就是为什么购买的多样性是0-1。总而言之,归结为:

class diagram of items sold in a store

相关问题