培训网站设计,头条搜索站长平台,昆山做网站费用,做网站智能工具5.1 模式介绍 你可能会发现#xff0c;简单工厂模式没在经典设计模式里出现#xff0c;别急#xff0c;它其实只是个常用的编程技巧#xff0c;而不是标准的设计模式。简单工厂模式有三个要素#xff1a;1个产品接口、n个产品类、1个工厂类#xff0c;工厂类通过if/else来…5.1 模式介绍 你可能会发现简单工厂模式没在经典设计模式里出现别急它其实只是个常用的编程技巧而不是标准的设计模式。简单工厂模式有三个要素1个产品接口、n个产品类、1个工厂类工厂类通过if/else来选择创建哪个产品。听起来挺简单但问题是一旦你想新增产品就得修改工厂类违反了“开闭原则”。 为了避免这种麻烦聪明的程序员们发明了工厂方法模式。它为每个产品创建一个独立的工厂类这样一来新增产品时无需改动现有代码系统的灵活性和可扩展性大大增强。简单来说工厂方法模式就是给每个产品都配个“专属经纪人”新增产品时只需要加新经纪人其他一切照旧。 5.2 实现要素 工厂方法模式关注的是单一产品族的创建其实现3要素包括1个产品接口、n个产品实现类、1个工厂接口n个工厂实现类。 5.3 场景案例 工厂方法模式就像交通工具生产线每个工厂负责生产一种交通工具 产品接口Vehicle所有交通工具如自行车和汽车都实现 drive() 方法这样每种交通工具都能“开”或者“骑”。 产品类Car 和 Bike Car 实现了 Vehicle 接口表示汽车的 drive() 方法。Bike 也实现了 Vehicle 接口表示自行车的 drive() 方法。 工厂接口VehicleFactory定义了一个方法 createVehicle()用于创建交通工具对象具体是汽车还是自行车由具体工厂来决定。 具体工厂类CarFactory 和 BikeFactory BikeFactory 实现 createVehicle() 方法负责生产 Bike 类自行车。 CarFactory 实现 createVehicle() 方法负责生产 Car 类汽车。 客户端像选车一样挑选自己需要的工厂比如汽车工厂或者自行车工厂然后通过调用 createVehicle() 方法得到对应的产品。只管开车或骑车不用知道工厂如何制造简单又高效