工厂模式
分为三类:简单工厂模式、工厂方法模式、抽象工厂模式
需求:咖啡店点餐系统
一个咖啡类(Coffee),并定义其两个子类(美式咖啡【AmericanCoffee】和拿铁咖啡【LatteCoffee】);再设计一个咖啡店类(CoffeeStore),咖啡店具有点咖啡的功能。
具体设计如下:
1、简单工厂模式 (不属于23种经典设计模式)
简单工厂不是一种设计模式,而是一种编程习惯。
1.1 简单工厂模式的角色
简单工厂模式有三种角色:
(1) 抽象产品:定义了产品的规范,描述了产品的主要特性和功能。
(2) 具体产品:实现或者继承抽象产品的子类
(3) 具体工厂:提供了创建产品的方法,调用者通过该方法来获取产品。
1.2 简单工厂模式的实现
在原需求上,增加一个工厂(factory)处理创建对象的细节,解除了Coffee和CoffeeStore的耦合。