August 2021
Intermediate to advanced
450 pages
4h 46m
Chinese
最新创建的Shop类是提取出来的功能。注意图8.7中的getInventory()和buyInventory()方法在体系树中从DonutShop和PizzaShop中移动到了抽象类Shop中。现在无论何时想提供一个新的定制化的Shop版本,我们只需加入Shop类的新实现(比如杂货店)。Shop类是实现必须遵守的契约。
Shop类有一个客户列表来展示组合如何适应这种情况。因此类CustList被包含在Shop类中。
图8.7 Shop模型的UML图
我们定义了一个名为Nameable的接口来演示接口的使用:
我们潜在拥有大量不同的实现,但(该程序中)其余的代码是相同的。在这个小例子中,似乎没节省多少代码。但在大型的现实的应用程序中,节省的代码是巨大的。我们来看看甜甜圈店的实现: ...