看一个新的需求
- 披萨项目新的需求:客户在点披萨时,可以点不同口味的披萨,比如 北京的奶酪pizza, 北京的胡椒pizza, 或者是伦敦的奶酪pizza、伦敦的胡椒奶酪pizza
思路1
- 使用简单工厂模式,创建不同的简单工厂类,比如BJPizzaSimpleFactory, LDPizzaSimpleFactory等等。考虑到项目的规模,以及软件的可维护性,可扩展性并不是特别好。
思路2, 使用工厂方法模式
- 设计方案:将披萨项目的实例化功能抽象成抽象方法,在不同的口味点餐子类中具体实现。
- 工厂方法模式:定义了一个创建对象的抽象方法,由子类决定要实例化的类。工厂方法模式将对象的实例化推迟到子类。