HeadFirst设计模式
HeadFirst设计模式 1策略模式 鸭子飞行和嘎嘎叫策略 2工厂模式 简单工厂简单的pizza工厂 通过一个工厂类的方法,创建和返回对象实例 原来混乱的代码: 修改后 简单工厂类图 Pizza店变成加盟店 在创建Pizza时将工厂传进去 想要多一些的质量控制,每个pizza店的工艺又不一样,有的先切再烤,有的先烤再切。 现在来看看Pizza店的多态。 将变化的东西移到低层(实现,子类),抽象的共性移到高层(超类或接口) 这边把Pizza的工艺流程移到子类中去 PizzaStore超类变成,将CreatePizza变成抽象方法,由子类实现方法。 工厂模式的工厂方法 Pizza本身,超类 Pizza的多态 最终的User调用 对于pizza店和pizza通过工厂模式形成了一个pizza组件,这边对pizza的实现,就不会违反针对接口编程 简单工厂模式 创建者和产品 所有的底层都依赖于高层,高层与高层之间相互依赖,相互解耦。 工厂UML Pizza店再次升级,Pizza原料升级 Ingredient(成分)超类: Dough(面团)Veggies(蔬菜)Pepperoni(意大利香肠)clam(蛤)子类: 改造Pizza类 抽象方法prepare() cheesepizza 靠近一点工厂 商店如何使用工厂 抽象工厂模式类图 抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族